#include<string.h> #include<stdio.h> int main() { //char *firstStr = "bab"; //char *secondStr = "aba"; //char *thirdStr = "aba"; char *firstStr; char *secondStr; char *thirdStr; scanf("%s", firstStr); scanf("%s", secondStr); scanf("%s", thirdStr); printf("firstStr 比 secondStr == %d\n",strcmp(firstStr,secondStr)); printf("secondStr 比 thirdStr == %d\n",strcmp(secondStr,thirdStr)); printf("thirdStr 比 firstStr == %d\n" ,strcmp(thirdStr,firstStr)); return 0; } 这段代码有什么问题
时间: 2024-04-26 22:25:18 浏览: 83
SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h
这段代码有一个问题:在使用 `scanf` 函数读取字符串之前,没有为指针变量 `firstStr`、`secondStr` 和 `thirdStr` 分配内存空间,导致在读取字符串时,会将数据写入未知的内存空间,可能会导致程序崩溃或产生不可预知的错误。解决方法是为这三个指针变量分配内存空间,可以使用 `malloc` 函数或声明字符数组的方式来分配空间。
阅读全文