#include <stdio.h>
int main()
{
int array[10][10];
int count;
for ( int i = 0; i<10; ++i )
{
for (int j = 0; j<10; ++j )
{
array[i][j] = count;
count++;
}
}
for (int i = 0; i<10; ++i )
{
for (int j = 0; j<10; ++j )
{
printf( "%d", array[i][j] );
printf( " " );
}
printf("\n");
}
}
The Big Programming Thread - Page 392
| Forum Index > General Forum |
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. | ||
|
EscPlan9
United States2777 Posts
| ||
|
bangsholt
Denmark138 Posts
Declare loop variable outside of for loop Always initialize loop variable *at least* in for loop -> for(i = 0; i < 10; i++) So do that and remove the i = 0; j = 0; in the middle of the file. Edit for EscPlan9: That's not legal C89, which the style he uses with declaring the loop variable outside of the for loop indicates ![]() An additional rule is to *ALWAYS* initialize your variables - this is not <insert language> where all variables are automatically some value if not initialized properly. | ||
|
Yoshi-
Germany10227 Posts
| ||
|
Arnstein
Norway3381 Posts
And thanks for the tip bangsholt, will definitely do the i = 0 inside of the for from now on! | ||
|
misirlou
Portugal3241 Posts
![]() | ||
|
spinesheath
Germany8679 Posts
i; in your for loop? | ||
|
Shield
Bulgaria4824 Posts
![]() | ||
|
Cyx.
Canada806 Posts
On November 13 2013 07:01 Yoshi- wrote: The first loop may not work properly since you don't initialize it Should probably emphasize this - even if your code gives you the result you expect, there's no guarantees i is getting initialized to the zero value you want it to, and so the behaviour of your code is undefined currently. You should just make sure to initialize the value in the for loop's initialization statement like people have said, that's what it's there for. e: quoting the people above who said pretty much the same thing for emphasis: On November 13 2013 06:40 misirlou wrote: j=0 between the outer fors (the i for's) won't acomplish what you want because j comes out of the first i iteration with value 10, and if you don't reset it, it stays 10 (which you do reset on the j=0; part of the for) and it would just print the first row. Also dont forget to set i=0 before the first for. You're welcome ![]() The j=0 next to the i=0 isn't really accomplishing anything, because atm it will assign it 0 again when it enters the loop. If you do get a habbit of setting the variables like that and happen to forget j=0 inside the i loop, it will only print the first row. Also, you're not setting i=0 before the first loop. Depending on compilers, systems and randomness, your program will not work because i will have a random value. On November 13 2013 06:57 EscPlan9 wrote: Really should just initialize the loop variable inside the loops. Cleans up the code a bunch: | ||
|
NihiLStarcraft
Denmark1413 Posts
On November 13 2013 07:39 darkness wrote: Can anyone recommend to me UML drawing tools please? I need to draw a class diagram, use case, sequence diagram, interface design (optionally). I feel MS Word can't help me much. ![]() I like draw.io - works very well for me and it can be integrated into Google docs if you're using that. It's entirely web-based too, so no need to download a program. (If that's not your thing, try StarUML, I've used that before and - while dated - it does the job just as well). | ||
|
Arnstein
Norway3381 Posts
On November 13 2013 07:17 misirlou wrote: whattttttttttt i said the same thing ![]() aww, I thanked you too! <3 | ||
|
mcc
Czech Republic4646 Posts
On November 13 2013 06:44 Arnstein wrote: I did like this, and it works fine now: + Show Spoiler +
This will work in debug mode (probably), but not in release, at least not reliably. There is nothing forcing compiler to initialize i to 0 before first loop. EDIT: Talking in VS terms In general terms, without forced variable initialization this will not work reliably. | ||
|
xeliana
Austria60 Posts
On November 13 2013 07:39 darkness wrote: Can anyone recommend to me UML drawing tools please? I need to draw a class diagram, use case, sequence diagram, interface design (optionally). I feel MS Word can't help me much. ![]() if it is nothing TOO complicated i you can always try MS visio. | ||
|
Arnstein
Norway3381 Posts
| ||
|
Mr. Wiggles
Canada5894 Posts
On November 13 2013 07:39 darkness wrote: Can anyone recommend to me UML drawing tools please? I need to draw a class diagram, use case, sequence diagram, interface design (optionally). I feel MS Word can't help me much. ![]() I'm taking a SE course right now, and personally I just use Dia which is available on both linux and windows for free. I've used it and it's worked pretty nicely for the class diagrams I've made for my group project of around 40ish classes. It has builtin functionality for UML too. I use it, because I work on Linux, and most of the stuff I need to do for my course is pretty simple. Otherwise, if you're using windows and have a dreamspark account or something, I've heard Microsoft Visio is pretty decent too. Lastly, I've heard people suggest eUML2 if you're using eclipse. What's different for this one is that after you create your UML class diagram, you can use the software to generate a bunch of code for you based on the UML, so it makes all the classes, all the method stubs, etc. in eclipse. If you're drawing this UML for something you're actually going to code, this might be something to look into. I haven't used it myself though, so I can't comment on how nice it is to use. | ||
|
heroyi
United States1064 Posts
I have a question about malloc. Specifically the difference between that and just a defined array. I have read around but I am still having a hard time to wrapping my head around it. I know that malloc essentially means to allocate a specific amount of memory (whatever amount you choose so) for, usually, a pointer. Webs say that malloc is used for dynamic purposes (even faster than say vector in c++ since it doesnt have to "initialize" the memory with a bunch of zeros thus malloc being "faster"). But my problem is that too me it doesn't seem so dynamic since you have to define the malloc just like an defined array. Or does it work by adding a function/pointer or whatever solution you wish to implement to the malloc if it fails the if test (checking to see if there is enough memory, if not then add more?) Those that can answer this can you also give a small example of malloc being dynamic. tl;dr I don't understand how malloc is dynamic since the argument requires a define size. | ||
|
spinesheath
Germany8679 Posts
Do not worry about speed unless you have run a performance analysis. Always make sure that your malloc'd memory is initialized to something reasonable. calloc is malloc + zero initialize so it might be a good idea to use that if you don't have an initialization loop right after the call to malloc. You can also use realloc to - who would have guessed - reallocate some malloc'd memory to a new size, keeping the existing data where possible (if you reduce the size, part of the data will be cut off). Notice that realloc can return a new array pointer to a different location, copying the old data. | ||
|
bangsholt
Denmark138 Posts
a) int myArray[16] and b) int * myArray = (int)malloc(16 * sizeof(int)); a) is stack allocated, b) is heap allocated. This means that if, you declare a) inside a function, the array will be deleted once the function is done running - if you do b) it will stay, because it's not related to the stack. This also means that you can leak memory when you use malloc - you have to remember to free your heap allocated variables again by calling free(myArray) - if you do this on a stack variable, welcome to segfault world :D Then there's also what spinesheath says in addition. | ||
|
zzdd
United States484 Posts
On November 15 2013 01:09 heroyi wrote: + Show Spoiler + Question in C (any other related languages I suppose): I have a question about malloc. Specifically the difference between that and just a defined array. I have read around but I am still having a hard time to wrapping my head around it. I know that malloc essentially means to allocate a specific amount of memory (whatever amount you choose so) for, usually, a pointer. Webs say that malloc is used for dynamic purposes (even faster than say vector in c++ since it doesnt have to "initialize" the memory with a bunch of zeros thus malloc being "faster"). But my problem is that too me it doesn't seem so dynamic since you have to define the malloc just like an defined array. Or does it work by adding a function/pointer or whatever solution you wish to implement to the malloc if it fails the if test (checking to see if there is enough memory, if not then add more?) Those that can answer this can you also give a small example of malloc being dynamic. tl;dr I don't understand how malloc is dynamic since the argument requires a define size. With malloc you don't have to know the size of the array before hand and you can make it any size. Hence it is easier to use for a dynamic set of inputs. If I'm getting input from a file or whatever that can have 0-1000+ entries, I can count the entries and make a perfectly sized array with malloc. With a normal array I would just have to make a huge array and hope its big enough and if the data is smaller your wasting space. Usually when calling malloc you use sizeof() for the size of your data type and then some variable that has the count of the entries to get the size of the array. Pretty much it just gives you a block of memory for you to use however you want. Another thing is if you get more information or less you can realloc or malloc again. Calloc btw has the initialization. | ||
|
CecilSunkure
United States2829 Posts
On November 15 2013 01:09 heroyi wrote: Question in C (any other related languages I suppose): I have a question about malloc. Specifically the difference between that and just a defined array. I have read around but I am still having a hard time to wrapping my head around it. I know that malloc essentially means to allocate a specific amount of memory (whatever amount you choose so) for, usually, a pointer. Webs say that malloc is used for dynamic purposes (even faster than say vector in c++ since it doesnt have to "initialize" the memory with a bunch of zeros thus malloc being "faster"). But my problem is that too me it doesn't seem so dynamic since you have to define the malloc just like an defined array. Or does it work by adding a function/pointer or whatever solution you wish to implement to the malloc if it fails the if test (checking to see if there is enough memory, if not then add more?) Those that can answer this can you also give a small example of malloc being dynamic. tl;dr I don't understand how malloc is dynamic since the argument requires a define size. With an array you specify the size at compile time, hard coded in your C code. With malloc you can pass a variable containing the size of memory to retrieve. This variable can be set via user input, so the user of your program can tell the program how much memory to allocate. This is not something you can do with an array on the stack. | ||
|
Ben...
Canada3485 Posts
On November 13 2013 07:39 darkness wrote: We have to use UMLet for that type of stuff. It does the job. If you are doing Java it can read in .java files and automatically create the classes for you. It will not create relationships between classes though. It's a simple Java Archive so you can run it on anything. I just leave it in my Dropbox folder.Can anyone recommend to me UML drawing tools please? I need to draw a class diagram, use case, sequence diagram, interface design (optionally). I feel MS Word can't help me much. ![]() | ||
| ||


