지역 변수에서 전역변수로...

다크슈테펜의 이미지

지역변수에서 전역변수로 값을 복사하는 방법을 알고 싶습니다.
그런데 이 지역변수가 포인터 선언한 함수에서 캡쳐해와야 합니다.
우선 본체 함수가 실행되면 거기서 인자가 나와서 이 함수를 실행합니다.그런데 문제는 제가 생각하는 경우로 생각해봐도 함수 값을 가지고 올수 없습니다.
전역 변수를 이용해서 복사할려고 해도 안돼고
아니면 메모리 주소번지로 복사할려고 해도 안돼고...함수가 끝나자 마자 값이 원래 대로 돌아가더군요...이 경우에는 어떻게 하죠...
구글링을 해도 이런경우는 처음이라...C입니다.

doldori의 이미지

말로 설명하기보다는 소스를 올리시는 편이 이해하기 쉽겠는데요.

익명 사용자의 이미지

..

다크슈테펜의 이미지

int placecode_rewined;
int timecode_rewined;
int whocode;

int meeting(int timecode,
                   char name[],
                   int placecode,
                   int whocode)
{

...이함수에서 time과 그리고 place등을 가지고 와야 합니다.

::placecode_rewined=timecode;
::timecode_rewined=placecode;
::whocode=whocode;


int result=0;
printf(...);
return result;
}

우선 이런식으로 했습니다.

int func(){
return placecode;
}

참조로 해서 메모리 번지를 넘겨 줘봐도 그냥 초기화 되어 버리고 말더군요....

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

doldori의 이미지

아직 프로그램의 의도와 현재 상황을 잘 모르겠지만, 이것만 봐서는 별 문제가 없어
보이는데요. meeting()의 목적이 전역변수의 값을 세팅하는 것인가요?

다크슈테펜의 이미지

doldori wrote:
아직 프로그램의 의도와 현재 상황을 잘 모르겠지만, 이것만 봐서는 별 문제가 없어
보이는데요. meeting()의 목적이 전역변수의 값을 세팅하는 것인가요?

단순히 값을 받아서 프린트 해주는 함수입니다.
즉 장소나 시간 누구 코드를 받아서 그냥 프린트 해줍니다.
그리고 이거는 어떤 함수가 실행되면서 이 함수에 최종적으로 인수가 전달되면서 프린트 하게 됩니다.코드상으로 보면 전역변수의 값도 셋팅도 합니다.

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

ㅡ,.ㅡ;;의 이미지

정확히.. 먼말인지 모르겠으나..ㅡㅡ;;

복사를 해오다니요.. 함수내부의 오토변수로 선언된내용을 복사해온다고요?

그렇다면.. 함수내부에서 복사를 해야죠.. 함수내부에서
전역=지역;
해두시면되고 그렇지 않다면

함수내부에서 값을 리턴 하고 함수실행값을 바로 전역에 저장해두시면됩니다.
전역=함수(); 가되는데....

뭐가문제죠?


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

익명 사용자의 이미지

ㅡ,.ㅡ;; wrote:
정확히.. 먼말인지 모르겠으나..ㅡㅡ;;

복사를 해오다니요.. 함수내부의 오토변수로 선언된내용을 복사해온다고요?

그렇다면.. 함수내부에서 복사를 해야죠.. 함수내부에서
전역=지역;
해두시면되고 그렇지 않다면

함수내부에서 값을 리턴 하고 함수실행값을 바로 전역에 저장해두시면됩니다.
전역=함수(); 가되는데....

뭐가문제죠?


아 값을 가지고 온다는 뜻이 었습니다.
제 상식으로는 전역에 지역을 대입하면 값을 가져 올수 있을꺼라 생각했는데 그게 아니더라구요...ㅠ0ㅠ;;저도 이상하게 생각은 했지만
ㅡ,.ㅡ;;의 이미지

Anonymous wrote:
아 값을 가지고 온다는 뜻이 었습니다.
제 상식으로는 전역에 지역을 대입하면 값을 가져 올수 있을꺼라 생각했는데 그게 아니더라구요...ㅠ0ㅠ;;저도 이상하게 생각은 했지만

전역에 지역을 대입하면 값을 가져오는데 왜이상하죠?
설마 그게 안되던가요?


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

익명 사용자의 이미지

네 유감 스럽게도 안되었습니다.

다크슈테펜의 이미지

이 소스가 정적 라이브러리에 들어가 있습니다.그런데 문제는 전역 변수를 지정해서 값을 받아 올려고 하면 함수가 종료되자 마자 전역 변수도 같이 초기화 되던지 그런것 같습니다.항상 0으로 찍혀 나옵니다.원래 대로라면 0은 절대로 아니거든요...

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

ㅡ,.ㅡ;;의 이미지

그렇다면 전역변수로 못받아 와서가 아니라 다른문제가 있는것입니다.
일단 전역변수를 확인(주소등..) 해보시고.. 동일한것이 맞다면
주변 memory 오류등을 확인해보세요..


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

댓글 달기

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