C语言利用malloc函数开辟动态存储单元,顺序存放输入的5个字符串,然后按从小到大的顺序输出这5个字符串

2025-03-25 21:41:01
推荐回答(3个)
回答(1):

一般的做法是把malloc和free包装以后使用,再加入适当的调试代码。可以参考:编写无错的C程序的秘诀的电子版。比如:free(p)包装一个函数: void Free(void *p) { if (p != NULL) { free(p); p = NULL; } } 至于malloc,一般的做法是分配size个字节的内存时,多分配一个调试用的结构体,然后把这些结构体做成链表,可以通过查看这个链表找到野指针。

回答(2):

#include
#include
#include
#define N 5
int main()
{
    int i,max;
    char *p[N];
    for(int i = 0; i < N; ++i) {  // 申请内存
        p[i] = (char *)(malloc(256 * sizeof(char)));
    }
    for(i=0;i        gets(p[i]);
    for(i=0;i        for(int j = i + 1; j < N; ++j) {
            if(strcmp(p[i], p[j]) > 0) {
                char *t = p[i];
                p[i] = p[j];
                p[j] = t;
            }
        }
    }
    for(i=0;i        puts(p[i]);
    return 0;
}

回答(3):

计分即可爸爸靠