서로 크기가 다른 데이터를 리스트 구조에 첨가하기...

onlytobe의 이미지

안녕하세요.
데이타를 생성한 다음 넘겨주려고 하는데 이게 잘 안되네요.
데이터 형은 unsigned char형입니다.
우선 데이타의 수가 일정치 않아서 동적으로 할당 하려고 합니다.
그렇지만 데이터의 크기가 일정하면 별 문제가 없는데 데이터가 가변합니다.
즉,
1번 데이터는

 
 typedef unsigned char BYTE
BYTE *data;
data = new BYTE[100];
// 리스트에 삽입
data = new BYTE[80];
// 리스트에 삽입

이런식으로 작업을 하고 나서 리스트 변수의 포인터를 넘겨주고 싶은데
내공이 부족하여 생각만 했지 어떻게 해야 할지 모르겠네요.
내공좀 쪼매 올리게 도와주세요..
좋은 하루 되세요.

서지훈의 이미지

어떤 리스트에 어떤 놈을 어떻게 연결 시키겠다는 건지?
그리고 그렇게 해야 하는 이유는?

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

추신_몇 번이나 읽어 봐도 질문의 의도를 몰라서.

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

onlytobe의 이미지

죄송! 죄송!
제가 질문을 엉성하게 써놨군요.
제가 하는 작업은 패킷을 만드는 작업입니다.
패킷의 cmd 부분은 데이터 크기가 동일한데 그 뒤에 붙는 데이터는
type에 따라 데이터의 크기가 다릅니다.
작업은 데이터가 있으면 여러개의 장비로 동시에 전송을 합니다.
이때 물론 쓰레드를 이용하여 각 머신과 연결하여 전송을 하게 됩니다.
기존에는 여러개의 데이터가 있으면 하나의 데이터에 대한 패킷을 각 쓰레드에서 만들어서 전송하게 하였습니다.
근데 똑같은 작업을 여러 쓰레드에서 하고 있으니 너무 비효율적인 것 같아서
쓰레드로 데이터를 넘겨주기 전에 원하는 데이터 수 만큼 패킷을 생성한 다음
그 패킷들을 리스트 같은 구조에다 집어 놓고 이 리스트를 쓰레드에 넘기려고 합니다.
근데 각 크기가 다른 패킷들을 생성한 다음 리스트에 넣고 싶은데
이걸 잘 몰라서 질문을 드렸습니다.
죄송죄송

hanseok의 이미지

onlytobe wrote:

 
 typedef unsigned char BYTE
BYTE *data;
data = new BYTE[100];
// 리스트에 삽입
data = new BYTE[80];
// 리스트에 삽입

struct list {
   struct list* next;
   BYTE ** item;
}

이렇게 하면 안되나요?

item = data;

음 안해봐서 모르겠지만. new를 통해서 힙영역에 메모리를 할당했으니.

그 포인터를 리스트에 추가해주면 될듯한데요..

역시 내공이 필요해.~~ === 좋은 답변이 더 올라오길 기대해 봅니다.

잠이 들어야지만 꿈을 꿀수 있는것인가?
우리는 항상 꿈을 쫓아 가며 살아가는 사람들..

댓글 달기

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