How to shrink your stomach

How to shrink your stomach created by jack federbroke helpd me to loss weight so i want to feedback him for that thank you jack! How to shrink your stomach http://www.howtoshrinkyourstomach.net/

Saturday, July 12, 2014

Guide and tips to clickbank - the big affiliate market

It's FREE And certainly the fastest, easiest and best way to make passive income online

There is no doubt that the influence and dominance of ClickBank in the affiliate market is similar to the Search Engine Google, Facebook in social networking and electronic sales on ebay.
ClickBank platform provides an opportunity for anyone to become an affiliate marketer, very easily, in almost every conceivable niche and market one or more of tens of thousands of products on the Site, and there is no doubt that almost every affiliate marketer using this site and marketed products from the site.

what is clickbank ?

ClickBank is a platform designed specifically for affiliate marketing, the site connects people who have a product that you are selling and affiliate marketers who are interested to market your product.

The site focuses mainly on electronic sales which means a product that anyone who buys it - immediately after payment receive such e-manual or software, can be downloaded immediately at the time of buying.

ClickBank significant advantage to a marketer is that everything is under one roof, the marketer does not deal with the seller of the product, but only in front ClickBank responsible for payment of commission dealer, tracking buyers that a buyer comes through my record, customer returns etc..

The multiplicity of products allows marketer partners to market several different products (of thousands that exist) when commissions are accrued right on - under his name, and can withdraw the money after a minimum amount (no separation between the profit on each product).

Another advantage is that each product page has been built for sale so you do not have to make a convincing landing page to buy the product, but enough to spread on the network links that lead to the sales page of the product.

How to choose a product?

After a simple registration and fast within the site it's time to look for a product to market, after you select the product you will get a direct link to his sales page that you will need to advertise, for any surfer clicks on a link above and buy the product you will get your commission (in clickbank the commissions on any product is very high!).

To search for products Click on the "marketplace" at the top screen (third from the top menu), via the menu on the left you can navigate to the category of products that interesting you.

After clicking on the relevant category (or after a search in the search box of any product by a specific word you want) products relevant to your chosen category will appear - sorted by rating the popularity of the products, the product name appears in red and below the product description.

Any product like this is basically an offer to you as marketers become partners in marketing the product under each product description, presents data that are designed to help you choose a product:
Picture

Avg $/sale

This is the average amount you receive for each unit of the product you sell net of commissions to clickbank,The amount is an average because it includes returns of the product by the customer, that is clickbank allow customers who buy products marketed on the site if they are not satisfied with the product - to cancel the transaction within 30 days and get your money back,If they do so, of course, the fee will be deducted from the reseller (ie your) So the average fee usually lower than the official commission (ie commission on every sale you get and will not be refunds if the products you sold) because it takes into account the percentage of the return of the product.

Future$.

There are products that will pay to you well for that buyer will upgrade after purchasing the product, the buyer will receive after the sale or during the buying option to upgrade or add additions to the product purchased, if the amount listed in this index - this is in addition to the payment you receive your commission on the sale if the customer will upgrade the purchase.

Total $/sale

This is the average amount you receive for each unit of the product that you sell including the additional fee you will get the upgrade of the product by the customer. (If no commission on the upgrade - this amount will be the same as the first index)

Avg% / sale

This is the percentage of the cost of the product marketer gets a commission on each sale (total fee to the cost of the product to the customer).

%refd

Percentage of units sold by affiliate marketers (compared by the owner of the product itself)

Grav

An important factor to note how different marketers earn from the product (during the last three months)When a marketer selling a lot more product so it gets a higher value of the grav (where 1 is the maximum value, for example, if a marketer selling a product today, the grav will increase by one if he sold a week ago so the grav will increase less than one - the more remote from today - affects less) .

As noted above weighting gives greater weight to the sellers that sold recently - it can be a good measure of the popularity of the product and the chance to make a sale.

Tips for choosing a product.

Any products in clickbank guarantee the buyer the option of returning the product within 30 days if he is not satisfied with the product, because products are stated Digitalim buyer wishes to exercise this right should just send an email to the seller and get his money back (he did not even have to delete the file from your computer ..).

The ease with which you can regret the purchase of digital products market - ensures that the product is not good enough, did not contribute anything to the buyer and does not cause the buyer evaluate - will be returned quickly.

If the buyer bought the product you are marketing then changed his mind and demanded his money - your commission will be deducted from your account, which means that the work you've invested in the client listed is lost. Therefore important to ensure that the rate of return of the product is not high just so you do not waste time on marketing products that ultimately to you will not generate income.

Way to check this is to look at the relationship between the price of the product and the average commission you receive it, when you click on the product you will see its selling price, if you double the percentage of commission you deserve (Avg% / sale) was less average commission (Avg $ / sale) as the average commission stated, includes the returns.

If the difference between the calculation of the fee by the percentage and the average commission rate - much higher - it can be concluded that there are a lot of product returns and therefore you should not mess with the above product.

The popularity of the product normally syncs with his grav (default order of their products is Popular among marketers, this usually coincides with the grav)Ie the more marketers who market the product will be more marketers that will sell, but if you see a popular product that has a relatively low grav (In respect of products less Popular thereof) can be concluded that either the product does not bring enough good conversion rate or more logical Popular of the specific product being drop -that means a lot of really sold it, but most sales were relatively long time ago and therefore less impact on the grav.

It is important to note that if you intend to market the product mainly in ppc not want to choose a product with grav too high because it indicates that there are many marketers who sell it and therefore competition for Google presentation will be larger and more expensive (As Google does not allow ads that lead to both selling the same page to be displayed in the same search) products typically located in the 5-10 clickbank results pages are the most effective and combine with relatively high popularity contest not too strong.

However, if most of your marketing is in seo marketing or free (enamels, forums, links, etc.) should necessarily choose the best product and the most sold in the niche since it indicates a good product and selling - in competitiveness less relevant the above cases.

 for more great tutorials Passive Income University

Friday, July 11, 2014

Android application development without writing a code line [Guide]

Introducing the MIT App Inventor, a free tool that allows anyone who wishes to build Android applications without the knowledge of any programming language.

Picture
Android Application Development sounds like a very difficult task for some people: Learning the Java language, the establishment of a development environment Eclipse kind or another computer, compiler, memory management, and more full of factors to consider before launching the APK file initial first version of the app your first Android.
Just for that, developed at MIT free tool called MIT App Inventor allows beginners make their first steps in developing apps for Android, experimenting around light, color and Idodotit particular user, allowing each technical knowledge bases develop applications that work for anything Android, using the browser-only (preferably chrome) without establishing any development environment on your computer.

Developing a simple application for example

Initially, you will need to be logged in with your Google. Type your username and password, and click Sign In. Then, confirm the application MIT AppInventor Version 2 to access the account information for your Google. Then, you will be asked to fill out a short survey of the MIT App Inventor, leave it at the moment. Press the New Project and named our project a certain name (only letters and numbers), say helloworld.
Picture
To show you how application development using App Inventor is a simple task, built an app with a text box control, button, and control Text-To-Speech. The ultimate goal of the application is at the moment will type some text and pressed the button, the app will read it to us using the TTS engine installed on the device. If you do not have one, you can download it here.

We get the Screen Designer, which represents what we actually see in our app:
Picture
On the right side are the controls, we can drag them into the application and place them. Center - the app screen and on the right - the list of controls that we use and their various properties, such as colors, titles, graphics, text, etc..

Drag the controls that you want to simple applications we build now: a text box, a button (both are under the tab User Interface), and Text-To-Speech (found under the Media tab):
Picture
Press the control to the Text To Speech, see the properties (Properties) to his left? We define the language: Country - United States, Language - English:
Picture

Now, the fun part

After we finished "design" and set the various properties of controls in the application, it's time to add the functionality. While standard development environments is a real coding, which requires prior knowledge of Java language, typically, this process is much simpler - a combination "blocks" that represent lines of code, using puzzle pieces.

Let's think about what we want to get out of our app on the level of text:

If we press the button, take the text inside the text box, and say it using the control Text-To-Speech.

Click the Blocks button on the right side top of the screen, next to the Designer, to replace Blocks view. Go to our button, Button1, on which we want to apply the action, and look for appropriate action (when Button1.Click do):
Picture
What does it mean actually? Exactly what we want to do: when the button is Button1 is pressed, do something.
Now, we need to set our little function what to do. What do we want? Cause the control to the Text-To-Speech in our "talk" to the value within the text box TextBox1. We will do this:
Picture
At this moment we finished building our first app!

Build the APK file

Now all that's left is to run and test it. For this purpose we have two options: either run it on our Android device, or run it on your PC Emulator. Since Emulator does not work optimally on all computers and takes a long execution time, built the APK file we will install and run on the device, and even then sign and upload the file to Google Play.

Go to menu, select Build -> App - Save to my computer process takes a few seconds (up to a minute or so). Eventually you will get the following dialog box, and you will see the APK file (attached here) drops directly to your PC. To install it, move it to your phone, make sure that the security settings of the device Unknown Sources option is selected in V, and install it using a file manager such as ES File Explorer.

That's it! Finished design, build and run your first Android app on your Android device without the knowledge of any programming language or code tinkering. This is a great tool especially for children, who want to make their first steps in programming. Good Luck!
 

Tips for Choosing a Domain.

Tips for Choosing a Domain.

Domain is the address that you need to tap in the browser address bar to get to a certain website, usually associated with the domain name of the site or the theme of the site.
When building websites / landing pages for promotion of products and want to build a few sites under the same domain is important to choose a domain that will fit all the content we want to raise in the future so you should focus more on the content information of the domain (such as extension, place of acquisition, etc.) than his name.

Anyone who builds a website / blog / mini site / landing page should choose a domain before it raises its content to the server, you should plan well for the domain selection, after the site in the air will be difficult to replace the domain name, here are some points to pay attention to when choosing Domain:

Where to purchase a domain?

In purchasing a domain make sure that the selling company is reliable and really register the domain in your name, as well as read the terms of registering the company has no right to transfer the domain back to the case of complaints about the site. (Some of the regulations stipulate that if your site will be reported as a spammer, the Company may ban the domain - can be problematic for affiliate marketers).

Now the cheapest and most reliable I know where I buy my domain is "namecheap" you can find domains with all extensions at very low prices.
If you need storage server your site also note that a company storage Blohust (the company with which I store my sites) provides free storage for those who purchase a domain name.

Read more Passive Income University

Thursday, July 10, 2014


hear the story of daniel cooper

Hello, my name is Daniel Cooper,

And I would like to tell you one of my favorite stories I have ever heard…

It’s about a man who was at one of the lowest times in his entire life, and the story of how he was able to completely turn his life around.

This man went from being thousands of dollars in debt…

to being able to pay off ALL of his bills - living a completely debt free life.

So, who was this man?

This man was me.

It’s true.

I was ashamed of myself… worried that I was going to lose my house… and have to go through the shameful, degrading process of moving my wife and daughters back into my parents basement…

And then one day everthing changed forever

click here passive income university

Wednesday, July 9, 2014

"Here's Your Opportunity To CLONE My Entire Internet Business System Today!"

 


In Hurry? Read The Script of The Video Below:


Hi, my name is Patric Chan, the best-selling author of WakeUp Millionaire.
During this video, I’m going to share with you how you can generate income from the internet. I know, it’s quite a big claim to make… but you’ll see how easily it can be done at the end of this video because I’ve done it.


click here passive income university

"How You Can Create an App and Start Earning Money . . . without Any Coding Knowlede . . . Guaranteed!"
Dear Friend,
If youve ever thought about creating your own mobile App, or wondered what it would be like to make $500, $1,000, even $10,000! a month then this might be the most important letter youve ever read!

In the paragraphs below I am going to do something that nobody has ever done Im going to show you a revolutionary system for creating killer Apps, and Im going to prove that it works!
This has never been done before!
The reason you can make money faster and easier creating Apps than any other way is because

- Apps have the highest profit margins possible!
- There are "Zero" production and delivery costs!
- Theres little or no risk! You dont have to buy a garage full of products to get started.
- You can create lifetime customers with the right Apps!

Imagine. . .
If you create a simple App and it gives you $15.00 every day, that would give you $450.00 a month extra income! And this money will come in whether youre at the beach, on a golf course, or in a coma for that matter.

Now imagine. . .
If you create 10 simple Apps in the next couple of months you could be making up to $54,000.00 in your first year!

But heres the catch: anyone can make serious money with Apps. . .
. . .but only if you can

1. Create a good App;
-In just a moment Im going to show you the most amazing system ever invented for creating a killer Apps without coing! Trust me, nobody has ever told you how to do this the way Im about to.

2. Find a niche for it;
Maybe you are one of the rare people that have the time and ability to create your own App. . . The problem is you could spend months or even years working on your App only to find out that nobody wants it.
-My cant-miss system will give you access to unlimited markets of eager customers that have been tried and tested. Theres no guesswork!

3. Convince people to get your App.
-The difference with this system is that you will have instant "expert" status. You wont have to spend years building a loyal client base. Other best-selling Apps will do the job for you!

So Is There Really a Way to Create a Killer App Without Wasting Your Time Struggling to Code and Distribute it Yourself???

Monday, July 7, 2014





 
 

Green App Machine

Cash In On The Mobile Apps Revolution With Green App Machine, The First Mobile App Creation Software In The CB Marketplace. Proven Sales Funnel Also Includes A Recurring Front End & 2 Hi-converting Upsells












Click Here App Creators 

Sunday, July 6, 2014








If you can click a mouse, you can
profit from online video!
Recent news articles show how some YouTubers are earning upwards of $100,000 per year from the ads they display on and around their videos...

What if you could earn money from those ads, without actually creating the content?
YOU CAN!

 

All you need to know in one place

Small step for huge knowledge
 
 
This is the place you learn everything you need to move forward and become the leader in programming and creating mobile apps.

No need to be an expert anyone can start from scratch !

You just need to find the area that interests you and access, from there the way to success is up to you .

Good Luck!

















 Click Here App Creators






App creators


Saturday, March 10, 2012

C LANGUAGE TUTORIAL 12.Dynamic Allocation

12 Dynamic Allocation

12.1 What Is Dynamic Allocation?

Dynamic allocation is very intimidating to a person the first time he comes across it, but that
need not be. Simply relax and read this chapter carefully and you will have a good grounding
in a very valuable programming resource. All of the variables in every program up to this point
have been static variables as far as we are concerned. (Actually, some of them have been
"automatic" and were dynamically allocated for you by the system, but it was transparent to
you.) In this chapter, we will study some dynamically allocated variables. They are simply
variables that do not exist when the program is loaded, but are created dynamically as they are
needed. It is possible, using these techniques, to create as many variables as needed, use them,
and deallocate their space for use by other variables. As usual, the best teacher is an example,
so load and display the program named dynlist.c.

main( )
{
struct animal {
char name[25];
char breed[25];
int age;
   } *pet1, *pet2, *pet3;
pet1 = (struct animal *)malloc(sizeof(struct animal));
strcpy(pet1->name,"General");
strcpy(pet1->breed,"Mixed Breed");
pet1->age = 1;
pet2 = pet1; /* pet 2 now points to the above data structure */
pet1 = (struct animal *)malloc(sizeof(struct animal));
strcpy(pet1->name,"Frank");
strcpy(pet1->breed,"Labrador Retriever");
pet1->age = 3;
pet3 = (struct animal *)malloc(sizeof(struct animal));
strcpy(pet3->name,Krystal");
strcpy(pet3->breed,German Shepard");
pet3->age = 4;
/*   now print out the data described above /*
printf("%s is a %s, and is %d years old.\n",pet1->name,pet1->breed,
pet1->age);
printf("%s is a %s, and is %d years old.\n",pet2->name,pet2->breed,
pet2->age);
printf("%s is a %s and is %d years old.\n",pet3->name,pet3->breed,
pet3->age);
pet1 = pet3; /* pet1 now points to the same structure that
pet3 points to */
free(pet3); /* this frees up one structure */
free(pet2); /* this frees up one more structure */
/*   free(pet1); this cannot be done,see explanation in text */
}

We begin by defining a named structure "animal" with a few fields pertaining to dogs. We do
not define any variables of this type, only three pointers. If you search through the remainder
of the program, you will find no variables defined so we have nothing to store data in. All we
have to work with are three pointers, each of which point to the defined structure. In order to
do anything, we need some variables, so we will create some dynamically.

12.2 Dynamic Variable Creation

The first program statement, which assigns something to the pointer "pet1" will create a dynamic
structure containing three variables. The heart of the statement is the "malloc" function buried
in the middle of the statement. This is a "memory allocate" function that needs the other things
to completely define it. The "malloc" function, by default, will allocate a piece of memory on
a "heap" that is "n" characters in length and will be of type character. The "n" must be specified
as the only argument to the function. We will discuss "n" shortly, but first we need to define a
"heap".

12.3 What Is A Heap?

Every compiler has a set of limitations on it as to how big the executable file can be, how many
variables can be used, how long the source file can be, etc. In the 1616, the major limit is your
total memory of 512k (or 4.5 megabyte, or whatever).

One limitation placed on users by many compilers for the IBM-PC and compatibles is a limit
of 64K for the executable code. This is because the IBM-PC uses a microprocessor with a 64K
segment size, and it requires special calls to use data outside of a single segment. In order to
keep the program small and efficient, these calls are not used, and the size is limited but still
adequate for most programs. This limitation does not apply to 1616/OS users, as the Motorola
68000 has a flat memory space of 16 megabyte.

A heap is an area which can be accessed by the program to store data and variables. The data
and variables are put on the "heap" by the system as calls to "malloc" are made. The system
keeps track of where the data is stored. Data and variables can be deallocated as desired leading
to holes in the heap. The system knows where the holes are and will use them for additional
data storage as more "malloc" calls are made. The structure of the heap is therefore a very
dynamic entity, changing constantly. Refer to your 1616/OS Programmers Manual for more
details of memory allocation in the 1616.

12.4 More About Segments

This section applies only to MS-DOS users, and is a consequence of the brain damaged segmented design of the Intel 8086 processor. The design was forced upon Intel by a commercial
requirement that they remain semi-compatible with their first microprocessors, the 8008 and
8080. This segmentation forces a choice of memory models on MS-DOS users, which their
compilers try to make somewhat easier. This limitation was only overcome with the release of
Intel 80386 and later processors, which can have large segments.

Some of the more expensive compilers give the user a choice of memory models to use. Examples
are Lattice and Microsoft, which allow the programmer a choice of using a model with a 64K
limitation on program size but more efficient running, or using a model with a 640K limitation
and requiring longer address calls leading to less efficient addressing. Using the larger address
space requires inter segment addressing resulting in the slightly slower running time. The time
is probably insignificant in most programs, but there are other considerations.

If an MS-DOS program uses no more than 64K bytes for the total of its code and memory and
if it doesn’t use a stack, it can be made into a .com file. Since a .com file is already in a
memory image format, it can be loaded very quickly whereas a file in a .exe format must have
its addresses relocated as it is loaded. Therefore a small memory model can generate a program
that loads faster than one generated with a larger memory model. Don’t let this worry you, it
is a fine point that few programmers worry about.

Using dynamic allocation, it is possible to store the data on the "heap" and that may be enough
to allow you to use the small memory model. Of course, you wouldn’t store local variables
such as counters and indexes on the heap, only very large arrays or structures.
Even more important than the need to stay within the small memory model is the need to stay
within the computer. If you had a program that used several large data storage areas, but not at
the same time, you could load one block storing it dynamically, then get rid of it and reuse the
space for the next large block of data. Dynamically storing each block of data in succession,
and using the same storage for each block may allow you to run your entire program in the
computer without breaking it up into smaller programs.

12.5 Back To The "Malloc" Function

Hopefully the above description of the "heap" and the overall plan for dynamic allocation helped
you to understand what we are doing with the "malloc" function. It simply asks the system for
a block of memory of the size specified, and gets the block with the pointer pointing to the first
element of the block. The only argument in the parentheses is the size of the block desired and
in our present case, we desire a block that will hold one of the structures we defined at the
beginning of the program. The "sizeof" is a new function, new to us at least, that returns the
size in bytes of the argument within its parentheses. It therefore, returns the size of the structure
named animal, in bytes, and that number is sent to the system with the "malloc" call. At the
completion of that call, we have a block on the heap allocated to us, with pet1 pointing to the
first byte of the block.

12.6 What Is A Cast?

We still have a funny looking construct at the beginning of the "malloc" function call. That is
called a "cast". The "malloc" function returns a block with the pointer pointing to it being a
pointer of type "char" by default. Many times, if not most, you do not want a pointer to a "char"
type variable, but to some other type. You can define the pointer type with the construct given
on the example line. In this case we want the pointer to point to a structure of type "animal",
so we tell the compiler with this strange looking construct. Even if you omit the cast, most
compilers will return a pointer correctly, give you a warning, and go on to produce a working
program. It is better programming practice to provide the compiler with the cast to prevent
getting the warning message.

12.7 Using The Dynamically Allocated Memory Block

If you remember our studies of structures and pointers, you will recall that if we have a structure
with a pointer pointing to it, we can access any of the variables within the structure. In the next
three lines of the program, we assign some silly data to the structure for illustration. It should
come as no surprise to you thatthese assignmentstatements look justlike assignments to statically
defined variables.

In the next statement, we assign the value of "pet1" to "pet2" also. This creates no new data,
we simply have two pointers to the same object. Since "pet2" is pointing to the structure we
created above, "pet1" can be reused to get another dynamically allocated structure which is just
what we do next. Keep in mind that "pet2" could have just as easily been used for the new
allocation. The new structure is filled with silly data for illustration.

Finally, we allocate another block on the heap using the pointer "pet3", and fill its block with
illustrative data.

Printing the data out should pose no problem to you since there is nothing new in the three print
statements. It is left for you to study.

12.8 Getting Rid Of The Dynamically Allocated Data

Another new function is used to get rid of the data and free up the space on the heap for reuse,
the function "free". To use it, you simply call it with the pointer to the block as the only argument,
and the block is deallocated.

In order to illustrate another aspect of the dynamic allocation and deallocation of data, an
additional step is included in the program on your monitor. The pointer "pet1" is assigned the
value of "pet3". In doing this, the block that "pet1" was pointing to is effectively lost since there
is no pointer that is now pointing to that block. It can therefore never again be referred to,
changed, or disposed of. That memory, which is a block on the heap, is wasted from this point
on. This is not something that you would ever purposely do in a program. It is only done here
for illustration.

The first "free" function call removes the block of data that "pet1" and "pet3" were pointing to,
and the second "free" call removes the block of data that "pet2" was pointing to. We therefore
have lost access to all of our data generated earlier. There is still one block of data that is on
the heap but there is no pointer to it since we lost the address to it. Trying to "free" the data
pointed to by "pet1" would result in an error because it has already been "freed" by the use of
"pet3". There is no need to worry, when we return to the OS, the entire heap will be disposed
of with no regard to what we have put on it. The point does need to made that losing a pointer
to a block of the heap, forever removes that block of data storage from our program and we may
need that storage later.

Compile and run the program to see if it does what you think it should do based on this discussion.

12.9 That Was A Lot Of Discussion

It took nearly four pages to get through the discussion of the last program but it was time well
spent. It should be somewhat exciting to you to know that there is nothing else to learn about
dynamic allocation, the last four pages covered it all. Of course, there is a lot to learn about the
technique of using dynamic allocation, and for that reason, there are two more files to study.

But the fact remains, there is nothing more to learn about dynamic allocation than what was
given so far in this chapter.

12.10 An Array Of Pointers

Load and display the filebigdynl.cfor another example of dynamic allocation. This program
is very similar to the last one since we use the same structure, but this time we define an array
of pointers to illustrate the means by which you could build a large database using an array of
pointers rather than a single pointer to each element. To keep it simple we define 12 elements
in the array and another working pointer named "point".

main( )
{
struct animal {
    char  name[25];
    char  breed[25];
    int age;
} *pet[12],  *point;          /*this defines 13 pointers,no variables */
int index;
/* first, fill the dynamic structures with nonsense */
    for (index = 0;index < 12;index++) {
       pet[index] = (struct animal *)malloc(sizeof(struct animal));
       strcpy(pet[index]->name,"General");
       strcpy(pet[index]->breed,"Mixed Breed");
       pet[index]->age = 4;
    }
 pet[4]->age = 12;            /* these lines are simply to    */
    pet[5]->age = 15;            /* put some nonsense data into  */
    pet[6]->age = 10;            /* a few of the fields.         */
         /* now prints out the data described above */
    for (index = 0;index <12;index++) {
       point = pet[index];
       printf("%s is a %s, and is %d years old.\n", point->name,
              point->breed, point->age);
}
              /* good programming practice dictates that we free up the  */
              /* dynamically  allocated space  before we quit.           */
    for (index = 0;index < 12;index++)
       free(pet[index]);
}

The "*pet[12]" is new to you so a few words would be in order. What we have defined is an
array of 12 pointers, the first being "pet[0]", and the last "pet[11]". Actually, since an array is
itself a pointer, the name "pet" by itself is a pointer to a pointer. This is valid in C, and in fact
you can go farther if needed but you will get quickly confused. I know of no limit as to how
many levels of pointing are possible, so a definition such as "int ****pt" is legal as a pointer to
a pointer to a pointer to a pointer to an integer type variable, if I counted right. Such usage is
discouraged until you gain considerable experience.

Now that we have 12 pointers which can be used like any other pointer, it is a simple matter to
write a loop to allocate a data block dynamically for each and to fill the respective fields with
any data desirable. In this case, the fields are filled with simple data for illustrative purposes,
but we could be reading in a database, readings from some test equipment, or any other source
of data.

A few fields are randomly picked to receive other data to illustrate that simple assignments can
be used, and the data is printed out to the monitor. The pointer "point" is used in the printout
loop only to serve as an illustration, the data could have been easily printed using the "pet[n]"
means of definition. Finally, all 12 blocks of data are freed before terminating the program.
Compile and run this program to aid in understanding this technique. As stated earlier, there
was nothing new here about dynamic allocation, only about an array of pointers.

12.11 A Linked List

We finally come to the grandaddy of all programming techniques as far as being intimidating.
Load the program dynlink.c for an example of a dynamically allocated linked list. It sounds
terrible, but after a little time spent with it, you will see that it is simply another programming
technique made up of simple components that can be a powerful tool.

#include "stdio.h" /* this is needed only to define the NULL */
#define RECORDS 6
main( )
{
struct animal {
char name[25]; /* The animals name */
char breed[25]; /* The type of animal */
int age;     /* The animals age */
struct animal *next;      /* a pointer to another record of this type */
} *point, *start, *prior; /* this defines 3 pointers, no variables */
int index;
 /* the first record is always a special case */
start = (struct animal *)malloc(sizeof(struct animal));
strcpy(start ->name,"general");
strcpy(start ->breed,"Mixed Breed");
start->next = NULL;
prior = start;
/* a loop can be used to fill in the rest once it is started */
for (index = 0;index < RECORDS;index++) {
point = (struct animal *)malloc(sizeof(struct animal));
strcpy(point->name,"Frank");
strcpy(point->breed,"Laborador Retriever");
point->age = 3;
point->next = point /* point last "next" to this record */
point->next = NULL; /* point this "next" to NULL */
prior = point; /* this is now the prior record */
}
/* now print out the data described above  */
point = start;
do {
prior = point->next;
printf("%s is a %s,and is %d years old.\n", point->name,
point->breed, point->age);
point = point->next;
} while (prior  != NULL);
/* good programming practice dictates that we free up the */
/* dynamically allocated space before we quit */
point = start;     /* first block of group */
do {
prior = point->next; /* next block of data */
free(point); /* free present block */
point = prior; /* point to next */
   } while (prior != NULL); /* quit when next is NULL */
}

In order to set your mind at ease, consider the linked list you used when you were a child. Your
sister gave you your birthday present, and when you opened it, you found a note that said, "Look
in the hall closet." You went to the hall closet, and found another note that said, "Look behind
the TV set." Behind the TV you found another note that said, "Look under the coffee pot." You
continued this search, and finally you found your pair of socks under the dogs feeding dish.

What you actually did was to execute a linked list, the starting point being the wrapped present
and the ending point being under the dogs feeding dish. The list ended at the dogs feeding dish
since there were no more notes.

In the program dynlink.c, we will be doing the same thing as your sister forced you to do.
We will however, do it much faster and we will leave a little pile of data ateach of the intermediate
points along the way. We will also have the capability to return to the beginning and retraverse
the entire list again and again if we so desire.

12.12 The Data Definitions

This program starts similarly to the last two with the addition of the definition of a constant to
be used later. The structure is nearly the same as that used in the last two programs except for
the addition of another field within the structure, the pointer. This pointer is a pointer to another
structure of this same type and will be used to point to the next structure in order. To continue
the above analogy, this pointer will point to the next note, which in turn will contain a pointer
to the next note after that.

We define three pointers to this structure for use in the program, and one integer to be used as
a counter, and we are ready to begin using the defined structure for whatever purpose we desire.
In this case, we will once again generate nonsense data for illustrative purposes.

12.13 The First Field

Using the "malloc" function, we request a block of storage on the "heap" and fill it with data.
The additional field in this example, the pointer, is assigned the value of NULL, which is only
used to indicate that this is the end of the list. We will leave the pointer "start" at this structure,
so that it will always point to the first structure of the list. We also assign "prior" the value of
"start" for reasons we will see soon. Keep in mind that the end points of a linked list will always
have to be handled differently than those in the middle of a list. We have a single element of
our list now and it is filled with representative data.

12.14 Filling Additional Structures

The next group of assignments and control statements are included within a "for" loop so we
can build our list fast once it is defined. We will go through the loop a number of times equal
to the constant "RECORDS" defined at the beginning of our program. Each time through, we
allocate memory, fill the first three fields with nonsense, and fill the pointers. The pointer in
the last record is given the address of this new record because the "prior" pointer is pointing to
the prior record. Thus "prior->next" is given the address of the new record we have just filled.

The pointer in the new record is assigned the value "NULL", and the pointer "prior" is given
the address of this new record because the next time we create a record, this one will be the prior
one at that time. That may sound confusing but it really does make sense if you spend some
time studying it.

When we have gone through the "for" loop 6 times, we will have a list of 7 structures including
the one we generated prior to the loop. The list will have the following characteristics.

1. "start" points to the first structure in the list.
2. Each structure contains a pointer to the next structure.
3. The last structure has a pointer that points to NULL and can be used to detect the end
as shown below.

start->struct1 name breed age point->struct2 name breed age
point->struct3 name breed age point-> . . . . struct7 name breed age
point->NULL
It should be clear to you, if you understand the above structure, that it is not possible to simply
jump into the middle of the structure and change a few values. The only way to get to the third
structure is by starting at the beginning and working your way down through the structure one
record at a time. Although this may seem like a large price to pay for the convenience of putting
so much data outside of the program area, it is actually a very good way to store some kinds of
data.

A word processor would be a good application for this type of data structure because you would
never need to have random access to the data. In actual practice, this is the basic type of storage
used for the text in a word processor with one line of text per record. Actually, a program with
any degree of sophistication would use a doubly linked list. This would be a list with two
pointers per record, one pointing down to the next record, and the other pointing up to the record
just prior to the one in question. Using this kind of a record structure would allow traversing
the data in either direction.

12.15 Printing The Data Out

To print the data out, a similar method is used as that used to generate the data. The pointers
are initialized and are then used to go from record to record reading and displaying each record
one at a time. Printing is terminated when the NULL on the last record is found, so the program doesn’t even need to know how many records are in the list. Finally, the entire list is deleted
to make room in memory for any additional data that may be needed, in this case, none. Care
must be taken to assure that the last record is not deleted before the NULL is checked. Once
the data is gone, it is impossible to know if you are finished yet.

12.16 More About Dynamic Allocation And Linked Lists

It is not difficult, and it is not trivial, to add elements into the middle of a linked lists. It is
necessary to create the new record, fill it with data, and point its pointer to the record it is desired
to precede. If the new record is to be installed between the 3rd and 4th, for example, it is
necessary for the new record to point to the 4th record, and the pointer in the 3rd record must
point to the new one. Adding a new record to the beginning or end of a list are each special
cases. Consider what must be done to add a new record in a doubly linked list.
Entire books are written describing different types of linked lists and how to use them, so no
further detail will be given. The amount of detail given should be sufficient for a beginning
understanding of C and its capabilities.

12.17 Another New Function - Calloc

One more function must be mentioned, the "calloc" function. This function allocates a block
of memory and clears it to all zeros which may be useful in some circumstances. It is similar
to "malloc" and will be left as an exercise for you to read about and use "calloc" if you desire.

12.18 Programming Exercises

1. Rewrite the example program struct1.c from chapter 11 to dynamically allocate the two
structures.
2. Rewrite the example program struct2.c from chapter 11 to dynamically allocate the 12
structures.







Wednesday, March 7, 2012

HTML Iframes

HTML Iframes


An iframe is used to display a web page within a web page.


Syntax for adding an iframe:
<iframe src="URL"></iframe>
The URL points to the location of the separate page.

Iframe - Set Height and Width

The height and width attributes are used to specify the height and width of the iframe.
The attribute values are specified in pixels by default, but they can also be in percent (like "80%").

Example

<iframe src="demo_iframe.htm" width="200" height="200"></iframe>

Try it yourself »


Iframe - Remove the Border

The frameborder attribute specifies whether or not to display a border around the iframe.
Set the attribute value to "0" to remove the border:

Example

<iframe src="demo_iframe.htm" frameborder="0"></iframe>

Try it yourself »


Use iframe as a Target for a Link

An iframe can be used as the target frame for a link.
The target attribute of a link must refer to the name attribute of the iframe:

Example

<iframe src="demo_iframe.htm" name="iframe_a"></iframe>
<p><a href="http://www.w3schools.com" target="iframe_a">W3Schools.com</a></p>

Try it yourself »


HTML iframe Tag

TagDescription
<iframe>Defines an inline sub window (frame)

App creators your key for sucsses








If you can click a mouse, you can
profit from online video!
Recent news articles show how some YouTubers are earning upwards of $100,000 per year from the ads they display on and around their videos...

What if you could earn money from those ads, without actually creating the content?
YOU CAN!

 

All you need to know in one place

Small step for huge knowledge
 
 
This is the place you learn everything you need to move forward and become the leader in programming and creating mobile apps.

No need to be an expert anyone can start from scratch !

You just need to find the area that interests you and access, from there the way to success is up to you .

Good Luck!

















 Click Here App Creators






App creators


guidescollection

i want to know

hello everyone

i wanted to ask from the viewers

if ther any subject thet you read and want continue reading and its not completed yet please let me know by comment or email

or if ther any subject thet you want me to add pls let me know