В шоке от напряжности программирования на C++ - страница 2

 
typedef struct news {
char a[50];
char b[50];
int i;
} NEWS;

void main()
{
NEWS *list1=(NEWS *)malloc(sizeof(NEWS)*50);

NEWS *list;

list=list1;

int a=0;

while(a<50) {
list[a].a[a]='a';
list[a].b[a]='b';
list[a].i=a;
a++;
}

a=0;

while(a<50) {
printf("%c %c %d\r\n",list[a].a[a],list[a].b[a],list[a].i);
a++;
}
  
}

 
Fduch >>:
Вот файлы проекта. Если интересно, в файле news.h поставьте Watch на 91 строку *функция AnalizeBuffer(char* buffer)*

У Вас там используются небезопасные методы обработки. Читайте предупреждения компилятора. К тому же Вот это 

char* Prepare_News(int index)
	{
		char tmp_char[50000]="";
		strcat(tmp_char,news_list[index].Time);
		strcat(tmp_char," ");
		strcat(tmp_char,news_list[index].Text);
		strcat(tmp_char," ");
		strcat(tmp_char,news_list[index].Previous);
		strcat(tmp_char," ");
		strcat(tmp_char,news_list[index].Forecast);

		return(tmp_char);
	}

char* Download_page(char* adress)
{
	//Записываем страницу adress в буффер buffer
	char buffer[50000]; DWORD bytes_read;
	strcpy(buffer,"");
	HINTERNET h_inet=InternetOpenA("Microsoft Internet Explorer",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,NULL);
	HINTERNET h_file=InternetOpenUrlA(h_inet,adress,NULL,0,0,0);
	InternetReadFile(h_file,buffer,sizeof(buffer),&bytes_read);
	//Ф-ция вовращает буфер, содержащий веб-страницу
	return(buffer);
}

весьма небезопасно. После работы функций вы куда обращаетесь ? Особенно если учесть, что после того как функции отработают переменные  тмп_чар и буффер уже не существуют, а их адрес а Вы передали во "внешний мир" для обработки и каким-либо образом используете. Детально проверять времени нет, но ошибки могут возникать при работе в любом месте.

Проверьте все внимательно - наверняка где-то затирается область памяти.

Это пока не дает ответа на вопрос о присваивании адресов (неточность, на которую указал sol  - описание типа - я исправил, результат тот же: адрес не идентичен), но при упрощении проги до простой операции присваивания адреса все работает......

Успехов.

 
почему тема называется "в шоке от с++" а не "в шоке от своего незнания". Почему люди винят в своих неудачах других, совет - если что не получается то 99,9% что виноват ты сам, а не "сломавшийся" язык программирования
 
space_cowboy >>:
почему тема называется "в шоке от с++" а не "в шоке от своего незнания". Почему люди винят в своих неудачах других, совет - если что не получается то 99,9% что виноват ты сам, а не "сломавшийся" язык программирования

Ну зачем так категорично? С++ не самый легкий язык.

Fduch >>:

Но вообще, конечно, форум не тот, совсем не тот.

Попробуй поискать помощи тут или тут, не знаю, помогут ли, ссылки в любом случае пригодятся, когда поднатореешь.

Сорри, но форумов по С++ для начинающих я не знаю.

 
space_cowboy >>:
почему тема называется "в шоке от с++" а не "в шоке от своего незнания". Почему люди винят в своих неудачах других, совет - если что не получается то 99,9% что виноват ты сам, а не "сломавшийся" язык программирования

Теперь правильнее?)

Всем спасибо, наверн таки придется попереписывать ф-ции..

 
Fduch >>:

Теперь правильнее?)

Всем спасибо, наверн таки придется попереписывать ф-ции..

Кстати, еще по любому проверь не возвращает ли тебе malloc null, в своем примере от лени не стал этого делать, но вообще очень важно.

 
Автор ветки изобретает велосипед (пытается).
 
four2one >>:
Автор ветки изобретает велосипед (пытается).

Под велосипедом подразумевается программа для отображения новостей с сайта dailyfx.com?) 

 
sol >>:

Кстати, еще по любому проверь не возвращает ли тебе malloc null, в своем примере от лени не стал этого делать, но вообще очень важно.

Память нормально выделяется. Хотя у меня такая ошибка раньше возникала, в другом проекте. Не подскажете, из-за чего такое может происходить или как от этого избавиться?

 
Если присваемая переменная не используется, то компилятор вообще может игнорировать строку кода.
Причина обращения: