C语言 malloc问题
本帖最后由 酴醾 于 2019-4-7 19:30 编辑#include <stdio.h>
#include <stdlib.h>
int JagArray(void);
int main(void)
{
JagArray();
return 0;
}
int JagArray(void)
{
int a1 = 5;
int a2[] = {7, 10, 8, 7, 9};
int i, j;
char **jag = NULL;
jag = (char **)malloc(a1 * sizeof(char *));
if (jag = NULL) return 1;
for (i = 0; i < a1; i++)
{
jag = (char *)malloc(a2 * sizeof(char));
for (j = 0; j < a2 - 1; j++)
*(jag + j) = 'A' + j;
*(jag + j) = '\0';
}
for (i = 0; i < a1; i++)
{
printf("%s\n", jag);
free(jag);
}
free(jag);
return 0;
}
第二个malloc那里 jag = (char *)malloc(a2 * sizeof(char)); 会内存分配错误
为什么? 求助
if (jag = NULL) return 1;
改成
if (jag == NULL) return 1; Croper 发表于 2019-4-7 19:45
改成
{:10_266:}我傻了 蟹蟹大佬
页:
[1]