总是碰到说 NULL pointer assignment 啊。。。
最近学指针学的特别头痛。。。求亲们帮忙指点哈。。。谢谢亲们啦!
亲们能帮我仔细看看这两个程序哪里出错了吗???希望您能详细分析一下,谢谢啦!应该怎么改才能运行成功呢??
第一个程序是:试用指向指针的指针对10个字符串排序,并输出排序结果
我是这么编的
#include<stdio.h>
#include<string.h>
void sort(char **p,int n)
{
char *temp;
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(strcmp(*(p+k),*(p+j)>0)
k=j;
if(k!=i)
{
temp=*(p+i);
*(p+i)=*(p+k);
*(p+k)=temp;
}}}} int main()
{
char *name[10]={"america","word","c programming","basic","a"};
char **p;
for(i=0;i<10;i++)
*(p+i)=name[i];
sort(p,10);
for(i=0;i<10;i++)
puts(name[i]);
return 0;
}
第二个程序是,试用字符指针定义函数strcpy(s,t,m),将字符串t中从第m个字符开始的全部字符复制到字符串s中。。。
我是这么编的
#include<stdio.h>
void strcpy(char *s,char *t,int m)
{
int i,j;
for(i=m-1,j=0;t[i]!='\0';i++,j++)
*(s+j)=*(t+i);
*(s+j)='\0';
}
int main()
{
char s[81],t[81];
int m;
gets(t);
scanf("%d",m);
strcpy(s,t,m);
printf("%s",s);
return 0;
}