구조체(struct) 을 프로그램 수행중 생성하는 방법이 있을까요 ?

shpark05의 이미지


struct 에 대한 몇가지 고민이 있어서 글을 올립니다.
물론 목적에 부합되게 다른 방법으로 회피하여 사용할 수 있지만, 다소 궁금하여
질문을 드리게 되었습니다.

struct abcd {
char ep[10];
int x;
char xp[3];
};

위의 구조체를 이미 실행중인 프로세스에서 구조체를 선언하여
사용할 수 있을지 궁금합니다.

예를들어 알지 못하지만 수행중 위와 같은 구조체가 있다는 정보를 파일읽기를
통하여 알아 낼 수 있다고 가정한다면 가능 할지 궁금합니다.

원하는 것은 동적으로 새로운 구조체 형식에 대하여 선언하여 사용하고자 하는 것입니다.

선언과 메모리 할당,...

그럼 좋은 한주 되시기 바랍니다.

coremaker의 이미지

컴파일 시점에 고정되지 않나요?
그런 비슷한 것을 할방법은 있어도.. 정답은 아니지 않을 가 싶습니다...

ㅡ,.ㅡ;;의 이미지

선언 할수 없습니다.

하지만 사용할수 있습니다.

메모리를 구조체에 맞게 잡고 사용하면되죠.

하지만 항상 구조체정보를 유저가 따로 관리해야한다는거..


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

shpark05의 이미지

말씀 감사드립니다. ^^

말씀 하신대로 컴파일시점이나, 메모리구조체를 맞게 잡아서 처리 할 수는 있을 것 같은데요.

문제는 패딩의 크기나 위치를 정확하게 파악하거나 참조할 수 있는지가 궁금해서요 ^^

위에 예제대로 한다면, ep[10] 뒤에 [0][0] 2개 정도 공간 생기고 int 변수영역이 메모리상에
존재 할 것 같은데요.

이 위치가 항상 이렇게 생기는지 정확하게 알지 못해서 입니다.

패딩원리나 packed 는 알고 있습니다만, packed 을 할 환경은 아니라서요 ^^;

혹시.... 누군가 경험이 있으시다면...

magingax의 이미지

C 에선 안됩니다..
LISP 에선 됩니다..defclass 써서..ㅎ

LISP 사용자모임
http://cafe.naver.com/lisper
방송기술 개발업체
http://playhouseinc.co.kr

coremaker의 이미지

당연히 될 거라고 생각합니다..

M.W.Park의 이미지

LISP은 인터프리터 언어일 수도 있고 아닐 수도 있습니다.
요즘 구현에선 인터프리터를 찾아보기 힘듭니다.

-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

magingax의 이미지

옛날 리습은 모르겠지만 요즘은 개발중에는 인터프리터처럼 쓰지만
릴리스용으로 덤프하면 최종결과물은 머신코드가 나옵니다
자바와는 비교도 안되게 빠르고. 거의 C와 동급의 속도가 나옵니다.
플로팅포인트 연산이 많거나, 하는 특정 상황
에선 C 보다도 빠릅니다..
전 FRANZ ACL 사용하는데 와방 만족중..
리습이 느리다는 편견은 비상용 툴들만 써본사람들이 하는 예기가 아닐런지.
좋은건 돈주고 사야..

LISP 사용자모임
http://cafe.naver.com/lisper
방송기술 개발업체
http://playhouseinc.co.kr

댓글 달기

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