배열 해제?

익명 사용자의 이미지

소켓 플밍을 하거 있습니다.. 데몬작업.. 쓰레드거..
근데 자꾸 세그먼트 폴트가 일어나네여 ㅠ.ㅠ 잘돌다가 ㅠ.ㅠ
core파일 보면 메모리 부족이라거 나오는데......
쩌비.. 많은양의 데이타를 받습니다..
각 쓰레드들은 하나 처리 하고 죽고.. 하는데엽..

배열도 메모리 해제해줘야 하나엽??... 어케여??
해제 해준다거 free 써서 많이 해줬는데도.. ㅠ.ㅠ 문제들이 발생
프로세스가 사용중인 메모리 보면.. 메모리 어쩔땐 엄청 올라갑니다.
아 세그 먼트 폴트 땜시 죽것듬다 ㅠ.ㅠ

좀 도와주세엽..

익명 사용자의 이미지

Segment fault는 메모리관련 에러가 대부분입니다만...
배열을 해제하는 함수는 없습니다.
free를 많이 쓰셨다는데 malloc함수도 쓰셨겠죠?
보통 segment fault는 스트링관련 함수에서 자주 발생을하죠.
제가 경험해본 결과 strcpy나 sprint같은 스트링 복사나 치환을
주로하는 함수에서 걸립니다. strcpy같은 경우는 원본 배열에서
많은 오류가 발생하는데 간단한 해결방법은 먼저 사이즈를 체크해서
프로그램에서 처리할 수 있는 일정 크기이상이면 에러로 분류를하고
크기에 맞는 복사함수인 strncpy를 사용해서 오류를 미연에 방지
할 수도 있습니다.
그리고 메모리가 자꾸 늘어나는 이유는 메모리를 할당한 후에 재대로
해제를 안해주어서 그런경우인데 이럴경우에는 차분하게 다시한번 소
스를 검토해주는 것이 좋습니다.
혹시 return하는 부분에서 free를 해주지 않았는지를 검사해보시는
것이 좋습니다.
배열로 잡은 변수를 free를 이용해서 해제시키려는 무식한 방법은
동원하지 마십시요. free는 malloc으로 잡은 메모리에대한 반환만
을 합니다. malloc으로 잡지않은 메모리영역을 free를 이용해서
한다면 메모리 관리자가 어떠한 영역을 해제시킬지 모르기 때문입니다.
정 잡히지가 않는다면 소스를 한번 올려놔보시기 바랍니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.