本质上,这段代码会起作用吗?在你说“运行它看看!”之前,我刚刚意识到我的 cygwin 没有附带 gcc,而且它目前距离完成重新安装还有 40 分钟的时间。话虽如此:
char* words[1000];
for(int i = 0; i<1000; i++)
words[i] = NULL;
char buffer[ 1024 ];
//omit code that places "ADD splash\0" into the buffer
if(strncmp (buffer, "ADD ", 4) == 0){
char* temp = buffer + 4;
printf("Adding: %s", temp);
int i = 0;
while(words[i] != NULL) i++;
words[i] = temp;
}
我主要不确定 line char* temp = buffer + 4
,以及我是否可以按照我的方式分配 words[i] 。当我最终尝试在 40 分钟内编译它时,我会得到类型错误吗?
另外——如果这可行,为什么我不需要在 words[] 的每个元素上使用 malloc()?为什么我可以说words[i] = temp
,而不是需要为 words[i] 分配内存 temp 的长度?