首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手.求帮小弟我看看下面这个小程序算法有何异常

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

新手.求帮我看看下面这个小程序算法有何错误?
设计了个求数组项数的函数。但我输入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);
不然越界了,

热点排行