读书人

新手.求帮小弟我看看下面这个小程序算

发布时间: 2012-04-10 21:03:56 作者: rapoo

新手.求帮我看看下面这个小程序算法有何错误?
设计了个求数组项数的函数。但我输入10个数的数组,为什么总得不了正确答案啊?求帮我看看这个程序有何错误?

C/C++ code
#include<iostream>using namespace std;int main(){    int N;    cout<<"Please input a number:";    cin>>N;    char a[N];    int length(char*);    for(int i=0;i<N;i++)    {        cout<<"Please input a["<<i<<"]:";        cin>>a[i];    }    int len;    len=length(a);    cout<<"The length of a["<<N<<"]:"<<len<<endl;    return 0;}int length(char *p){    int n=0;    while(*p)    {        n++;        p++;    }    return n;}


[解决办法]
应该 char *a = (char *)malloc(N);
memset(a, 0, N);
最后再:
free(a);
[解决办法]
应该是这样:
char *a = (char *)malloc(N+1);
int length(char*);
memset(a, 0, N+1);
不然越界了,

读书人网 >C++

热点推荐