通过函数

时间:2017-11-18 18:24:49

标签: c arrays pointers dynamic-arrays

我正在尝试使用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;?

感谢您的帮助。

0 个答案:

没有答案