在C中模拟一个可追加数组…有点

在C中模拟一个可追加数组…有点,c,string,C,String,我正在尝试编写一个C代码,它实现了我所编写的python代码块的功能 我试图使它的所有行保持简单,但仍然有一些东西是我写的,C无法做到的 我的代码将获取一个坐标数组,并随着时间的推移将项目替换/添加到该数组中 例如: [[[0,1]],[[2,1],[1,14]],[[1,1]]] ==> [[[0,1]],[[2,1],[1,14],[3,2]],[[1,1]]] 或 我认为这在C语言中是不可能的,但是用字符串来表示列表,这样就可以添加到列表中了?像这样: [['0$1$'],['2$

我正在尝试编写一个C代码,它实现了我所编写的python代码块的功能

我试图使它的所有行保持简单,但仍然有一些东西是我写的,C无法做到的

我的代码将获取一个坐标数组,并随着时间的推移将项目替换/添加到该数组中

例如:

[[[0,1]],[[2,1],[1,14]],[[1,1]]] ==> [[[0,1]],[[2,1],[1,14],[3,2]],[[1,1]]]

我认为这在C语言中是不可能的,但是用字符串来表示列表,这样就可以添加到列表中了?像这样:

[['0$1$'],['2$1$1$14$'],['1$1$']] ==> [['0$1$'],['2$1$1$14$3$2'],['1$1$']]

在我的代码中,我知道数组中的每个数组要么是一对或多对数字,要么只是一个数字,所以这个方法适合我


C可以这样做吗?如果可以,请提供一个例子

如果您知道字符串的长度和所述字符串的数量都不会超过某个值,则可以执行以下操作:

char Strings[字符串的数量][最大字符串长度+1];//对于空终止符

然后,将所有内存归零将是一个很好的做法:

for (size_t i = 0; i < NUMBER_OF_STRINGS; i++)
    memset(Strings[i], 0, MAX_STRING_LENGTH + 1);
一个更安全的解决方案(尽管成本稍高,因为您需要调用遍历整个字符串的
strlen
)是:

strncat(Strings[i], SourceString, MAX_STRING_LENGTH - strlen(Strings[i]));

那么,您想追加(在末尾插入)还是在特定索引处插入?在数组中特定索引处的某个字符串的末尾插入。我只需要附加。像add('hi',2,[[[['0$1$'],['40$'],['1$1$'])返回[[['0$1$'],['40$'],['1$1$hi']]当然在
C
中是可能的。例如,作为
struct
s的链接列表,听起来像是一个。你想解决什么问题?我对C语言很陌生。
for (size_t i = 0; i < NUMBER_OF_STRINGS; i++)
    memset(Strings[i], 0, MAX_STRING_LENGTH + 1);
strcat(Strings[i], SourceString);
strncat(Strings[i], SourceString, MAX_STRING_LENGTH - strlen(Strings[i]));