Articles of mémoire

allocation de mémoire dynamic pour les chaînes en c

J’ai trouvé ce code fonctionne parfaitement. #include #include int main(int argc,char *argv[]) { char* s; /* input ssortingng */ s=malloc(sizeof(s)); int c; if(argc==1){ // if file name not given while (gets(s)){ puts(s); } } } Ce que je ne comprends pas, c’est comment la chaîne s est stockée dans la mémoire.J’atsortingbue de la mémoire uniquement […]

Qu’est-ce qui peut causer des adresses étranges dans une trace de stack Valgrind?

(Cette question concerne le filtrage des fichiers indésirables de la sortie de valgrind ). J’essaie de déboguer des memory leaks dans un projet volumineux qui est en grande partie hors de ma scope – c’est un fork d’une base de code qui est de l’ordre de millions de lignes de code, bien que la plupart […]

Une adresse peut-elle être affectée à une variable en C?

Est-il possible d’atsortingbuer à une variable l’adresse que vous voulez, en mémoire? J’ai essayé de le faire mais j’obtiens une erreur en tant que “Lvalue requirejse en tant qu’opérande de gauche d’affectation”. int main() { int i = 10; &i = 7200; printf(“i=%d address=%u”, i, &i); } Quel est le problème avec mon approche? Y […]

Passage d’un firmware à un autre dans le FLASH interne du MCU

Je travaille actuellement sur une application de micrologiciel de chargeur de démarrage ciblée sur STM32F030C8. J’ai spécifié dans mon fichier scatter que l’application du chargeur de démarrage occupera l’emplacement de mémoire principale 0x08000000 à 0x08002FFF (secteur 0 à secteur 2). J’ai également écrit une application de firmware principale stockée de 0x08003000 à 0x0800C800. Après avoir […]

Comment puis-je tuer un pthread qui est dans une boucle infinie, de l’extérieur de cette boucle?

Je crée un fil et je le mets dans une boucle infinie. Je reçois des memory leaks lors de la vérification du code avec valgrind . Voici mon code: #include #include void thread_do(void){ while(1){} } int main(){ pthread_t th; pthread_create(&th, NULL, (void *)thread_do, NULL); sleep(2); /* I want to kill thread here */ sleep(2); return […]

Comment écrire une barrière de mémoire pour un DSP TMS320F2812?

J’ai consulté le guide de l’utilisateur du compilateur TI C / C ++ v6.1 ( spru514e ), mais je n’ai rien trouvé. La déclaration asm ne semble rien fournir à cet égard, le manuel met même en garde contre toute modification de la valeur des variables (p132). L’extension GNU permettant de déclarer des effets sur […]

Quel algorithme appliquer pour la réallocation continue de petits morceaux de mémoire?

Dans le programme C, je suis confronté à des transactions nécessitant beaucoup de morceaux de mémoire, il me faut savoir s’il existe un algorithme ou une meilleure pratique utilisée pour gérer tous ces fichiers. pointer le tableau lui-même se remplit et réaffecter le tableau est un gaspillage supplémentaire, quelle est la manière élégante de traiter […]

Question d’affectation de chaîne en C statique

Considérons le code suivant: char* str = “Hello World”; memcpy(str, “Copy\0”, 5); Une erreur de segmentation se produit pendant la mémoire. Cependant, en utilisant ce code: char str[12]; memcpy(str, “Hello World\0”, 12); memcpy(str, “Copy\0”, 5); Le programme ne génère pas d’erreur de segmentation. Le problème provient-il de l’allocation de mémoire sur la stack par rapport […]

Pointeur sur une variable locale en dehors du champ de sa déclaration

Disons que j’ai une structure représentant un document PDF pdf et une structure représentant l’une de ses pages pdf_page : typedef struct pdf_page { int page_no; pdf_page *next_page; char *content; } pdf_page; typedef struct { pdf_page *first_page, *last_page; } pdf; De mon main() , j’appelle create_pdf_file(pdf *doc) : void main() { pdf doc; create_pdf_file(&doc); // […]

Pourquoi mon élément de structure porte-t-il des octets de remplissage?

J’ai un comportement déroutant avec l’alignement de la mémoire des éléments de structure. Considérez ces deux structures: typedef struct s_inner { unsigned long ul1; double dbl1; fourth_struct s4; unsigned long ul2; int i1; } t_inner; typedef struct s_outer { other_struct member1; /* 4-byte aligned, 40 bytes in terms of sizeof() */ unsigned long member2; t_inner […]