Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2011, 23:24   #1
Djigurda
 
Регистрация: 10.11.2011
Сообщений: 6
По умолчанию Отказ компилятора на строке с strncat()

Дорый вечер. При компиляции ошибка:
Необработанное исключение в "0x770f70b4" в "la.exe": 0xC0000005: Access violation.
И курсор указывает на строчку с использованием strncat().

Код:
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

using namespace std;

char* szeplenie (int n,int a[],char c[],char str[])
{
for (int i=0;i<n;i++)
{
itoa(a[i],str,10);
strcat(c,str);           // А ЗДЕСЬ НОРМАЛЬНО ПРОХОДИТ
} 
return c;
}

char* szeplenie (int n,float b[],char c[],char str[])
{
for (int i=0;i<n;i++)
{
sprintf(str,"%2.2f",b[i]);
strncat(c,str,4);         //ПОСЛЕ ОШИБКИ КУРСОР УКАЗЫВАЕТ СЮДА
} 
return c;
}

void main()
{
int n=5;int i;char c[150];char str[30];
int a[]={1,2,3,4,5};
  szeplenie (n,a,c,str);
float b[]={10.2,5.3,3.4,1.2,0};
cout<<szeplenie (n,b,c,str);
getch();
}
задача: сцепление строк одномерных массивов типа integer и float
Djigurda вне форума Ответить с цитированием
Старый 11.11.2011, 01:11   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Место в массиве заканчивается, видимо )
Напиши 1500 вместо 150.
Son Of Pain вне форума Ответить с цитированием
Старый 11.11.2011, 01:22   #3
Djigurda
 
Регистрация: 10.11.2011
Сообщений: 6
По умолчанию

Попробовал-тоже самое(
Djigurda вне форума Ответить с цитированием
Старый 11.11.2011, 02:18   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Глянул внимательнее. У тебя массив c не инициализируется ничем, потому вначале в нем мусор.
Напиши
Код:
char c[1500]={0}
Son Of Pain вне форума Ответить с цитированием
Старый 11.11.2011, 10:21   #5
Djigurda
 
Регистрация: 10.11.2011
Сообщений: 6
По умолчанию

Спасибо огромнейшее!)))
Djigurda вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отказ Железа DRAGGER Компьютерное железо 9 28.03.2011 22:48
отказ в авторизации, idHTTP, POST thecerberus Работа с сетью в Delphi 0 02.03.2011 10:17
Отказ в подключении к mysql GreenShuller БД в Delphi 5 24.06.2010 16:41
отказ в доступе Kiber3D Безопасность, Шифрование 2 05.06.2010 10:54