By using NED, you certify that you read, understood & agreed to the terms of usage.
Use the file-browser below to select, one by one, all the .c or .h files in your project. Leave empty browsers if you do not need to analyze this many files. When you use the "Analyze" button, your files will be uploaded & analyzed. A new tab will open in your browser with a full report on possible errors.
You might alternatively select a bunch of files in your file browser then drag and drop them here...
You may alternatively zip your entire project folder then select the resulting zip file to upload
This web app has been developed for Firefox. You may download a portable firefox version if you do not want to fully install it on your system. It should work on other standards-adhering browsing
Keep in mind these are potential errors, things you should take another look at in order to make sure they are not mistakes. Unfortunately, there is so much a program may do to understand another program.
Do not hesitate to drop us feedback, see about details here. If you want to learn a bit more about this project read here
This table lists all our tutorials so you may peruse through them. The number of views for each is also displayed; this is not the number of times the error occured in an uploaded set of files but rather the number of times a user clicked on the messages hyperlinked to this tutorial in order to read it.
Similarly, the usefulness is based on the number of users who clicked yes at the bottom of a tutorial page. The uselessness is based on the number of those who clicked no.
The Freq. value represents how often the errors or warnings which the tutorial explains have been found during uploaded files analysis. It is a good estimate of the frequency of the underlying bugs among all NED users
Do not hesitate to use the mini-survey feature which you will find in the last section of each tutorial page. It helps identify both the tutorials in need of improvement but also those we should use as models.
Name | From | Type | Details | Views | Useful | Useless | Freq. |
---|---|---|---|---|---|---|---|
Unused Variables | Compiler | Warning | Variable declared, maybe even assigned, but never used | 50 | 0 | 1 | 929 |
Undeclared Variables | Compiler | Error | Undeclared variable used | 43 | 2 | 2 | 264 |
Undefined References | Linker | Error | Undefined reference to function or variable | 43 | 1 | 1 | |
Missing Return Statement | Analyzer | Warning | Function is missing return statement | 41 | 1 | 0 | 71 |
Missing Array Size | Compiler | Error | The size of an array is not specified | 38 | 1 | 1 | 48 |
Empty Block | Analyzer | Warning | Your program features an empty block | 41 | 1 | 2 | 123 |
Single Quote String | Compiler | Warning | Using single quote as string delimiter | 41 | 5 | 3 | 62 |
Unexpected Break Statement | Analyzer | Warning | Unexpected break statement | 40 | 0 | 0 | 37 |
Missing break statement | Analyzer | Warning | Missing break statement | 33 | 8 | 3 | |
Unreachable Statements | Analyzer | Warning | Unreachable statements | 42 | 1 | 7 | 79 |
= vs. == | Compiler | Warning | Assignment used in Boolean expression | 74 | 2 | 1 | 246 |
Unary OPs in Larger Expr | Analyzer | Warning | Unary operators used in larger expression | 42 | 0 | 0 | 232 |
Bitwise vs. Logical | Analyzer | Warning | Use of bitwise binary operator instead of logical operator | 40 | 0 | 1 | 159 |
Expected Semicolon | Compiler | Error | Expected semi-colon | 39 | 2 | 1 | 43 |
Dangling Pointer | Analyzer | Warning | Dangling pointer | 39 | 3 | 1 | 78 |
Dereferencing NULL | Analyzer | Warning | Dereferencing NULL pointer | 44 | 2 | 5 | 34 |
Dereferencing Incomplete Types | Compiler | Error | Dereferencing a pointer to an incomplete data type | 39 | 3 | 3 | 381 |
Multi-free on same memory block | Analyzer | Warning | Freeing multiple times the same memory block | 45 | 0 | 1 | 38 |
Memory Leak | Analyzer | Warning | Memory leak | 44 | 0 | 4 | 116 |
Freeing unallocated pointer | Analyzer | Warning | Freeing non-allocated memory | 51 | 2 | 2 | 121 |
sizeof on Pointer | Analyzer | Warning | Using sizeof operator on pointer | 41 | 1 | 2 | |
Uninitialized Pointers | Analyzer | Warning | Unitialized pointer | 36 | 1 | 6 | |
Discarding Ptrs Qualifiers | Compiler | Warning | Assignment or cast discards pointers qualifier | 41 | 1 | 1 | |
Unchecked Malloc | Analyzer | Warning | Return value from malloc or similar function is not checked | 43 | 0 | 1 | 231 |
Unexpected EOF | Compiler | Error | Unexpected EOF | 43 | 3 | 3 | 37 |
Unterminated literal | Compiler | Error | Missing end-delimiter for character or string literal | 41 | 2 | 1 | 284 |
Useless Value | Analyzer | Warning | Statement results in a value which is never used | 41 | 3 | 1 | 593 |
Void not Ignored | Compiler | Error | Attempting to use a void returned value | 61 | 0 | 6 | 61 |
Missing EOF Newline | Compiler | Warning | Missing newline at end of file | 34 | 3 | 0 | |
Multiple Unary Ops on Variable | Compiler | Warning | Using multiple unary operators on same variable in a single expression | 42 | 0 | 3 | 120 |
Empty Char Literal | Compiler | Error | Empty character literal | 40 | 3 | 2 | 46 |
Using Uninitialized Variable | Compiler | Warning | Variable not initialized | 41 | 2 | 2 | 43 |
Forward Parameter Declaration | Compiler | Error | Parameter has a forward-declaration | 49 | 0 | 3 | 1600 |
Unexpected Data Types | Compiler | Error | Unexpected multiple data types where one is expected | 45 | 0 | 3 | 119 |
Unexpected Arguments Number | Compiler | Error | Unexpected number of arguments | 39 | 1 | 0 | 82 |
Mismatch numbers for args / specifiers | Compiler | Warning | There is a mismatch between the number of format specifiers used in a printf or scanf, and their arguments | 36 | 2 | 1 | 196 |
Mismatch types for args / specifiers | Compiler | Warning | There is a mismatch between the data type of format specifiers used in a printf or scanf, and the data type of the corresponding argument | 46 | 2 | 2 | 528 |
Using unknwon struct field | Compiler | Error | Unknown struct field | 44 | 2 | 0 | 90 |
Parameters Storage Class | Compiler | Error | Storage class specified for parameter | 38 | 2 | 0 | 43 |
Shadowed Identifier | Analyzer | Warning | Shadowing variable already in scope | 37 | 2 | 1 | 26 |
Argument Conversion | Compiler | Warning | Arguments data type is converted | 42 | 2 | 0 | 238 |
Modifying Parameters | Analyzer | Warning | Formal parameters are assigned inside function | 42 | 2 | 0 | 62 |
Assign Integer to Pointer | Compiler | Warning | Assigning non-NULL constant to Pointer | 46 | 0 | 1 | 118 |
Mixed Pointers Declarations | Analyzer | Warning | Declaring variables in one statement with pointer and non-pointer data types | 40 | 2 | 0 | |
Missing Function Declaration | Compiler | Warning | Missing function declaration | 37 | 3 | 1 | |
Function should not be exported | Analyzer | Warning | Function is not static to its file, yet unused in other files | 58 | 3 | 0 | 542 |
Off by one | Analyzer | Warning | A loop might be off by one in its number of iteration; e.g. start at 0 instead of 1 | 34 | 0 | 0 | 18 |
Formatting String Mismatch | Analyzer | Warning | A printf or scanf is using a formatting string with conversion specifiers unrelated to the parameters | 36 | 0 | 1 | |
Assign pointer to integer | Analyzer | Warning | Assigning memory address to variable expecting integer | 37 | 0 | 0 | 60 |
12 | 0 | 0 | |||||
12 | 0 | 0 | |||||
11 | 0 | 0 | |||||
10 | 0 | 0 | |||||
11 | 0 | 0 |