Показать сообщение отдельно

  #1  
Старый 20.04.2008, 14:42
ZipaCna
Познающий
Регистрация: 29.02.2008
Сообщений: 66
Провел на форуме:
139469

Репутация: 33
По умолчанию

помогите разобраться почему этот код работает не так как надо....

#include<iostream>
using namespace std;

int main(int argc, char *argv[])
{
char **message_buf;

message_buf = new char*[argc];
for(int u=0;argv[u] != NULL;u++)message_buf[u]=new char[sizeof(argv[u])];


for(int i=0; argv[i] != NULL; i++)
{
strncpy(message_buf[i], argv[i], sizeof(argv[i]));
cout<<"w["<<i<<"]:"<<message_buf[i]<<endl;
}

for(int i=0;argv[i] != NULL;i++)delete [] message_buf[i];
delete []message_buf;
}


кампилю g++(linux)

Запускаю: ./client sdgdfg dfg dfg df gdfg

результат
w[0]:./cl
w[1]:sdgd
w[2]:dfg
w[3]:dfg
w[4]:df
w[5]:gdfg

как видете выводит только первые 4 символа... не предлогать переписать код, важно найти ошибку именно в этом.

Последний раз редактировалось ZipaCna; 20.04.2008 в 17:34..
 
Ответить с цитированием