При вызове функции printl(), далее любая строчка кода воспринимается компилятором как ошибка - C (СИ)
Формулировка задачи:
Всем доброго времени суток!
Написал вот такой код:
Может кто-нибудь, пожалуйста, объяснить ошибку? Почему при вызове функции printl(), далее любая строчка кода воспринимается компилятором как ошибка, а если закомментировать вызовы printl(), то всё нормально?
Заранее спасибо за помощь!
#include "main.h"
//Function's prototypes
void printl(char *, int);
//void mullpoly(short *, int, short *, int, short *, int *);
int main(void)
{
char splash[] = "* Created by ConteDevel *";
char title[] = "* Cycle codes *";
printl(&splash, sizeof(splash)); //print logo
printl(&title, sizeof(title)); //print title
short * a = (short*)malloc(5 * sizeof(short));
return 0;
}
//Print ConteDevel logo on the screen
void printl(char * str, int len) {
int i = 0;
len--;
for(i = 0; i < len; i++)
printf("*");
printf("\n");
for(i = 0; i < len; i++) {
printf("%c", *(str + i));
}
printf("\n");
for(i = 0; i < len; i++) {
printf("*");
}
printf("\n");
}В main.h
#ifndef MAIN_H #define MAIN_H #include <stdio.h> #include <stdlib.h> #endif // MAIN_H
Решение задачи: «При вызове функции printl(), далее любая строчка кода воспринимается компилятором как ошибка»
textual
Листинг программы
short * a = (short*)malloc(5 * sizeof(short));
Объяснение кода листинга программы
- В начале кода выполняется операция выделения памяти с помощью функции malloc().
- Сигнатура функции malloc() выглядит следующим образом: void* malloc(size_t size);
- В качестве аргумента функции передается размер памяти в байтах, который требуется выделить.
- Функция malloc() возвращает указатель на начало выделенной области памяти.
- В данном случае, в переменной
aсохраняется указатель на выделенную память. - Тип данных переменной
a- short*, что означает, что это указатель на короткое целое число (short). - Значение переменной
aпосле вызова функции malloc() будет содержать адрес выделенной памяти. - Далее, переменная
aбудет использоваться в коде для хранения и обработки значений коротких целых чисел.