我的代码中有以下片段,我试图使用动态分配的char *
数组来保存来自标准输入的字符串。
char **reference
reference = calloc(CHUNK, sizeof(char *));
我正在使用一个临时静态数组首先存储来自 的字符串stdin
,然后根据一定的条件将其复制到 的数组中char *
。我char *
在运行时为个人分配内存。
reference[no_of_ref]=malloc(strlen(temp_in) + 1);
reference[no_of_ref++]=temp_in;
// printf(" in temp : %s , Value : %s , Address of charp : %p\n",temp_in,reference[no_of_ref-1],reference[no_of_ref-1]);
memset(&temp_in,'\0',sizeof(temp_in));
pre_pip = -1;
}
/*If allocated buffer is at brim, extend it by CHUNK bytes*/
if(no_of_ref == CHUNK - 2)
realloc(reference,no_of_ref + CHUNK);
sono_of_ref
保存最终收到的字符串总数。例如 20。但是当我打印整个reference
数组以查看每个字符串时,我得到了最后一个相同的字符串,打印了 20 次。