私はこの配列を持っています:
char *tags[100];
私がこれを行う場合:
tags[0]="something";
動作します(少なくともエラーはありません)。ただし、forループ内のまったく同じコードはそうではありません。
int j=0;
for(j; j<100; ++j)
{
tags[j]="something";
}
「セグメンテーション違反」と表示されます。これは何ですか?
更新:コード全体:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void append(char* s, char c)
{
int len = strlen(s);
s[len] = c;
s[len+1] = '\0';
}
int main()
{
int istag;
FILE *fopen(), *fp;
int i;
fp = fopen("oldal.html","r");
i= getc(fp) ;
char* szo;
int index=0;
char *tags[100];
int j=0;
for(j; j<100; ++j)
{
tags[j]="something";
}
while (i!= EOF)
{
i = getc(fp);
char c=i;
if(c=='<')
{
istag=1;
}
if(c=='>')
{
istag=0;
index++;
//printf("tag vege: %s %d",tags[index],index);
}
if(istag)
{
//append(tags[index],'a');
}
append(szo,c);
}
//printf("%s",szo);
fclose(fp);
return 0;
}