|

楼主 |
发表于 2005-1-10 10:49:57
|
显示全部楼层
不知道这样写对不?
[PHP]#include <stdio.h>
int main()
{
char *aa = "bb";
char *bb = "aa";
char ** entry;
entry = (char**)malloc( sizeof(char*) * 2 );
entry[0] = (char *)malloc(sizeof(char));
entry[1] = (char *)malloc(sizeof(char));
entry[0] = &aa;
entry[1] = &bb;
printf("%s\n",entry[0]);
printf("%s\n",entry[1]);
free(entry);
}
[/PHP]
但打印出:
[root@WLX exa]# gcc cc.c
cc.c: In function `main':
cc.c:11: warning: assignment from incompatible pointer type
cc.c:12: warning: assignment from incompatible pointer type
[root@WLX exa]# ./a.out
鑴
B刳�縯UB
雱
B刳�縯UB
另我在MAD中发现这种结构
[PHP]struct player {
int verbosity;
int options;
int repeat;
enum player_control control;
struct playlist {
char const **entries;
int length;
int current;
} playlist;
...........
[/PHP]
它的playlist->entries是从命令行程序argv中得来的.
例如:madplay aa.mp3 bb.mp3 cc.mp3
playlist->entries就是从argv[1]开始的.
但我想图形化mad,所以mp3文件名是从一个循环得来的
for( i = 0;i < 100 ; i++ )
{
char *aa = "mp3name";
playlist->entries = aa;
想:printf("%s\n",playlist->entries) == "mp3name";
}
我不知道该怎样把char **entries赋字符串,又怎样使用entries引用这些字符串的名字. |
|