我正在尝试使用cpyMsg()函数来编写一个函数cpyMsg(),它将消息复制到一个指针数组中。但我的Bad Access内存错误,我不明白我做错了什么。
示例:
int cpyMsg(char **m, char *msg, size_t *dim){
m = realloc(m, (*dim + 1) * sizeof(char *));
m[*dim] = malloc(strlen(msg)+1);
strcpy(m[*dim], msg);
(*dim)++;
return 1;
}
int main() {
char msg[] = "Test Message";
char **m = NULL;
size_t dim = 0;
cpyMsg(m, msg, &dim);
printf("m[%lu] = %s\n", dim-1, m[dim-1]); //<- EXC_BAD_ACCESS
return 0;
}
如果我将所有代码放在main函数中,它可以正常工作,但它不在cpyMsg()函数中。我错了这个论点&#34; char ** m&#34;?
感谢您的帮助。