簡體   English   中英

如何將字符串的一部分復制到struct數組的元素?

[英]How to copy a part of a string to an element of array of struct?

我在結構數組方面遇到問題。 我正在嘗試將字符串的一部分復制到struct數組的元素中。 (對不起,如果聽起來不太清楚)

這是我的代碼

#include <stdio.h>
#include <string.h>

struct dict {

char key[1024];

char value[16384];

int level;

};

int main()
{
struct dict entry[2562];
char str[]="i will finish my mp";
int j=0;
int i = 0;
char temp[1024];
char a =0;

while(a != 'h' ){
    a = str[i];
    temp[i] = str[i];
    i++;
} 
strcpy(entry[0].value,str);
puts(entry[0].value);



return 0;
}

它可以編譯,但確實存在分段錯誤,我不知道它有什么問題,請幫忙

while(a != 't' )這是無限循環

你的意思是

char a = 0xff;
while(a != '\0'){...} 

此任務for更清晰

int cnt = srtlen(str);
for(int i = 0; i < cnt; i++)
    temp[i] = str[i];

代碼中的分段錯誤的一種可能是堆棧溢出。

您的結構中每個變量的大小約為17KB,您正在創建2562個此類變量,這意味着總共需要分配約43554KB的內存,其中42MB需要分配。

您可以通過在外殼程序中執行ulimit -s來檢查最大堆棧大小的限制,如果小於43554,則可達到stackoverflow。

如果是這種情況,您可以嘗試通過執行ulimit -s 43554或更多方法來增加堆棧限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM