【发布时间】:2013-01-23 11:08:37
【问题描述】:
我对 C 很陌生,我试图用函数的结果填充文件宽数组变量,这是一个简单的代码示例来说明我的意思,谁能指出我为什么这不起作用的方向?
#include <sys/types.h>
#include <dirent.h>
#include <regex.h>
#include <stdio.h>
#include <gtk/gtk.h>
#include <string.h>
#include <unistd.h>
#include <pwd.h>
static gchar *external_names;
void directories(int arraylength, gchar internal_names[][100]){
int n;
for (n = 0; n < arraylength; n++)
{
strcpy(external_names[n], internal_names[n]);
}
for (n = 0; n < arraylength; n++)
{
printf("%s internal with %s external\n",internal_names[n], external_names[n]);
}
}
void main()
{
gchar anotherarray[10][100];
directories(10, anotherarray);
}
[编辑]最新代码
#include <sys/types.h>
#include <dirent.h>
#include <regex.h>
#include <stdio.h>
#include <gtk/gtk.h>
#include <string.h>
#include <unistd.h>
#include <pwd.h>
static gchar *external_names[100];
void directories(int arraylength, gchar internal_names[][100]){
int n = 0;
//gchar external_names[arraylength][100];
for (n = 0; n < arraylength; n++)
{
printf("%s %i\n","before", n);
strcpy(external_names[n], internal_names[n]);
printf("%s %i\n","after", n);
}
}
void main()
{
int n;
gchar anotherarray[10][100];
for (n = 0; n < 10; n++)
{
strcpy(anotherarray[n],"test");
}
directories(10, anotherarray);
for (n = 0; n < 10; n++)
{
printf("%s internal with %s external\n",anotherarray[n], external_names[n]);
}
}
【问题讨论】:
-
你不能使用变量的值,除非你给它赋值。在分配任何值之前,您使用
external_names(在此代码中:strcpy(external_names[n], internal_names[n]);)。 -
我没有尝试写入文件,只是文件宽(静态)变量,'strcpy(external_names[n], internal_names[n]);)' 没有分配 internal_names 的值 [ n] 到外部数组?