Table of Contents
Det er en opgave for Kommissionen at undersøge, om der er behov for en effektiv kontrol, og om der er behov for en effektiv kontrol.
Example 1: Traversing Arrays
De anvendte værdier er effektive, og der er således ingen grund til at antage, at de er effektive.
(1); FLT: 0; C3; Rettedusage: C1; FLT: 1; C3;
int sum = 0;
int * ptr = array;
fr (int i = 0; i mp; lt; size; i +) {
sum + = * (ptr + i);
}
Det er en metode, der er korrekt, og som er baseret på et aritmetisk gennemsnit.
Pitfall 1: Pinterer Aritmetic Beyond Array Bounds
Movang pointers beyond the allocated memory can cause undefined conductor. Fr example:
int * ptr = array;
fr (int i = 0; i mmp; lt; = size; i + +) {
printf (Buddings;% dn, Buddings; * (ptr + i))
}
Tilbehør * (ptr + size) overstiger array hops, leading to unpredictable results.
Example 2: String Manipulation
Pr. aritmetisk metode, der ofte anvendes i strengbehandling, er det ikke muligt at anvende følgende:
(1); FLT: 0; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt. 3; Pkt
char * src = Buddings; Hello Buddings;;
char dest-1; 6-3;
char * p = src;
char * q = dest;
whe (* p) {
* q + + = * p + +;
}
* q = Memorandumpost;
Pitfall 2: Off- by- One Errors in String Copying
Failing to o allocation available fr the null terminator or copying beyond the buffer causer buffer overflows. Fr example:
char dest-1; 5-3;
char * p = Memorandum; Wortd Memorandum;;
fr (int i = 0; i mmp; lt; = 5; i +) {
dest-1; i-3; = p-1; i-3;
}
Det er en blanding af to og fem, der er overfløjet.
Afsluttende
Pointetarifie giver fleksibilitet i C og C + +, men det kræver, at man tager hånd om tingene. Understående kommun pitfalls hjælper med at forebygge bugs og sikkerhed i forbindelse med udvikling af software.