读书人

字符数组指针的有关问题

发布时间: 2012-03-20 14:01:11 作者: rapoo

字符数组指针的问题
比如程序中有如下定义
char *szBuf[10]
用来存放10个国家名字

那么怎样在程序中向这个指针数组中存放各个国家的名字呢?
我用gets()不是报错就是非法访问地址。

还有,main(int argc,char *argv[])和main(int argc,char **argv)是等效的
这是为什么?最好列举一下两个数组的地址。

谢谢!

[解决办法]

C/C++ code
#include <iostream>using namespace std;#define N 2int main(){    int i;    char* country[N];    for (i = 0 ; i < N; i++)    {        country[i] = new char[20];    }        i = 0;    while (i < N)    {        cin >> country[i++];    }        i = 0;    while (i < N)    {        cout << country[i++] << endl;    }        for (i = 0 ; i < N; i++)    {        delete [] country[i];    }    return 0;}
[解决办法]
C/C++ code
#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){    char *szBuf[10];    char *str;    int i;    for ( i = 0; i < 10; i++ )    {        str = (char *)malloc(sizeof(char)*20);//要有空间来存放才行         gets(str); //接收         szBuf[i] = str; //把指针放到指针数组szBuf中     }    for ( i = 0; i < 10; i++ )    {        printf("%s ",szBuf[i]);//读取指针,输出         free(szBuf[i]); //释放     }    system("PAUSE");    return 0;} 

读书人网 >C语言

热点推荐