미리 할당된 동적 메모리에서 더 확장 하는 함수가 있는지요?

skylandi의 이미지

미리 할당된 동적 메모리에서 더 확장 하는 함수가 있는지요?

동적 메모리가 10 바이트가 할당 되어 있는데(문자열 값이 들어 가 있음) 나중에 15바이트를 더 확장을 해서 문자열을 더 추가 하려고 합니다.
이런 함수가 있는지 알고 싶습니다.

즐거운 하루 도ㅣ ㅅ ㅣ ㄱ ㅣ

크리스마스 지낫당

cinsk의 이미지

skylandi의 이미지

답변에 감사 드립니당.

내가 하고자 하는길....

nahanjang의 이미지

예전 realloc은 문제가 있어서 지금?의 realloc은 내부적으로 free 하고 malloc하는 형태로 구성된다고 봤는데 어딘지는 모르겠네요.
전 그냥 free하고 다시 malloc하는게 가장 깔끔한 방법인거 같네요 ^^;

ㅡ,.ㅡ;;의 이미지

nahanjang wrote:
예전 realloc은 문제가 있어서 지금?의 realloc은 내부적으로 free 하고 malloc하는 형태로 구성된다고 봤는데 어딘지는 모르겠네요.
전 그냥 free하고 다시 malloc하는게 가장 깔끔한 방법인거 같네요 ^^;

realloc 가 프리하고 다시 메모리 잡아주는형태입니다.


----------------------------------------------------------------------------

winner의 이미지

아마도 pointer 무효화로 인한 문제를 그렇게 말하는 것 같습니다.

동적할당된 장소를 가리키고 있는 pointer 가 두개 이상이라면 하나를 가지고 realloc 했을 경우
다른 pointer 들은 다시 설정해주기 전에는 사용할 수 없는 문제가 발생하죠.

물론 이것은 malloc 하고 원래장소에서 복사를 한 후 원래장소를 free 해도 마찬가지로 발생합니다.

nahanjang의 이미지

ㅡ,.ㅡ;; wrote:
nahanjang wrote:
예전 realloc은 문제가 있어서 지금?의 realloc은 내부적으로 free 하고 malloc하는 형태로 구성된다고 봤는데 어딘지는 모르겠네요.
전 그냥 free하고 다시 malloc하는게 가장 깔끔한 방법인거 같네요 ^^;

realloc 가 프리하고 다시 메모리 잡아주는형태입니다.

단순히 최근에 나온 유닉스 머신에서만 해당 프로그램을 구동한다면 아무런 문제가 없겠지요.
하지만 예전 머신의 realloc은 기존 할당받은 메모리에서 사이즈를 늘리거나 줄이는 방법으로 구현된경우가 있었기 때문에 여러 머신에서 구동할경우에는 문제가 발생할 수도 있음을 이야기 한것입니다.
실제로 그런경험을 했구여. ^^

댓글 달기

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