酴醾 发表于 2019-4-7 19:27:11

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)); 会内存分配错误
为什么? 求助


Croper 发表于 2019-4-7 19:45:08

if (jag = NULL) return 1;
改成
if (jag == NULL) return 1;

酴醾 发表于 2019-4-7 19:46:59

Croper 发表于 2019-4-7 19:45
改成

{:10_266:}我傻了 蟹蟹大佬
页: [1]
查看完整版本: C语言 malloc问题