[C] 구조체 크기와 실행오류와의 상관관계...

oldbell의 이미지

HEADER는

/* HEADER 구조체 : STX 는 빠짐 */
struct HEADER
{
        char size[6];
        char style[4]; 
 ...
        char slug[81];         
        char body[MAXDATASIZE];
        int  bodySize;         
        int  seqno;            
        char orgFileName[256]; 
        char Path[256];  
        char areaName[10];     
};

첫번째 코드
struct HEADER a_header[1028];

두번째 코드
struct HEADER a_header[10];

첫번째 코드는 컴파일후 실행하면 Segmentation fault 오류가 나고
두번째 코드는 오류가 나지 않습니다.

어떤 부분때문에 그런지 궁금합니다. ^^;

pynoos의 이미지

printf("%d", sizeof a_header )

를 해서 실제 크기가 어떻게 되는지 확인해보세요.
stack overflow가 일어 난것인지도 모릅니다.

oldbell의 이미지

printf("%d", sizeof(a_header) ) ; 

결과 : 51144

입니다. ㅠ.ㅠ

인생의 무게를 느껴라. 아는 만큼 보이는게다.

pynoos의 이미지

그정도면 큰수가 아닌데 1024일때 그렇다는 것인가요?

1024 라면 크기의 문제가 아닌것 같습니다.

oldbell의 이미지

일단은 구조체자체의 Size의 크기를 줄여서 해결했습니다만, 51144 byte * 1024 (또는 2048)정도가 문제가 안될 것이라는 이야기 신지요?

-----
답변에 감사합니다.

ps : 호준... 나 헌종인뎅.. 기억할라나?

인생의 무게를 느껴라. 아는 만큼 보이는게다.

doldori의 이미지

대충 계산해도 50M가 넘는군요. 십중팔구 스택 오버플로우입니다. 그 정도의
크기라면 동적 할당을 해야겠군요.

pynoos의 이미지

oldbell wrote:
일단은 구조체자체의 Size의 크기를 줄여서 해결했습니다만, 51144 byte * 1024 (또는 2048)정도가 문제가 안될 것이라는 이야기 신지요?

-----
답변에 감사합니다.

ps : 호준... 나 헌종인뎅.. 기억할라나?

아! 헌종 형님이시군요!
이야... 거의 5년된 듯..! 다른 얘기는 메시지로 할께요..

그리고 제 이름은 호진입니다. :)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.