如何将指针引用的值存储在变量中?

How to store value referenced with pointers in variables?

实际上我有一个看起来像这样的字符串:"1,22,333,,55555,666666,7777777"

根据这个字符串,我创建了两个数组:

    ["1,22,333,,55555,666666,7777777";
    "22,333,,55555,666666,7777777";
    "333,,55555,666666,7777777";
    ",55555,666666,7777777";
    "55555,666666,7777777";
    "666666,7777777";
    "7777777"]

参数可以改变长度和类型但不能改变顺序。 所以我想为那些关心的人使用类型转换来存储它们

我已经测试了 sscanf 指针数组的每个索引,但它似乎不起作用

char* format = strcat(strcat("%", params_sizes[0]), "u");
strutest.un = sscanf(params_pointer[0], format);

你有什么想法可以帮助我吗?

这一行

char* format = strcat(strcat("%", params_sizes[0]), "u");

错了。

strcat的原型是

char *strcat(char *restrict dest, const char *restrict src);

其中 dest 目标 ,即(指向)存储连接字符串的对象。

所以看看你的代码:

strcat("%", params_sizes[0]
       ^^^
       dest !!!

您正在尝试将结果存储在字符串文字中。那行不通(修改未定义行为中的字符串文字)。

你需要这样的东西:

char format[1024] = "%";  // Sufficiently big char array that can be modified

strcat(strcat(format, params_sizes[0]), "u");

顺便说一句:还要考虑 sprintf 而不是嵌套 strcat