一个简单C程序自己出错的问题

1.sprintf和scanf函数

​ 今天写一个C程序,不知道为啥在使用sprintf和scanf函数中一直出错。后面查找相关资料,终于有点头绪。如下代码:

char * str;
scanf("%s",str);

这个代码为啥会出错?因为没有为它分配内存,所以会出错,其实sprintf函数也是类似的。所以我们可以有俩种解决办法,一是通过malloc函数动态分配内存,二是我们可以通过字符数组声明字符串。代码如下:

char * str = (char *)malloc(100);//1
char strs[100] ;//2

2.介绍以下sprintf函数

我们可以用这个函数实现拼接字符串以及int类型的数字转为字符串

char str1[100];
sprintf(str1,"name=%s\tid=%d\tscore=%d\n",stu[i].name,stu[i].stuId,stu[i].score);

3.简单的排序

for(i=0;i<=9;i++){
            for (j=i+1;j<=10;j++){
            if(stu[i].score>stu[j].score)    
                    {
                        temp=stu[i];
                        stu[i]=stu[j];
                        stu[j]=temp;
                    }
        }       
    }

这个排序并不难,但是就是因为这块代码我没有把边界条件写好,所以运行程序的时候一直提示Segmentation fault

上一篇:php 保留小数的几种方式


下一篇:一个简单的C程序自己出错的问题