text:
C dynamic memory allocation
From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
C standard library
General topics
Data types
Character classification
Strings
Mathematics
File input/output
Date/time
Localization
Memory allocation
Process control
Signals
Alternative tokens
Miscellaneous headers
<assert.h>
<errno.h>
<setjmp.h>
<stdarg.h>
v
t
e
C dynamic memory allocation refers to performing manual memory management for dynamic memory allocation in the C programming language via a group of functions in the C standard library, namely malloc, realloc, calloc and free.[1][2][3]
The C++ programming language includes these functions for compatibility with C; however, the operators new and delete provide similar functionality and are recommended by that language's authors.[4]
Many different implementations of the actual memory allocation mechanism, used by malloc, are available. Their performance varies in both execution time and required memory.
Contents
1 Rationale
2 Overview of functions
2.1 Differences between malloc() and calloc()
3 Usage example
4 Type safety
4.1 Advantages to casting
4.2 Disadvantages to casting
5 Common errors
6 Implementations
6.1 Heap-based
6.2 dlmalloc
6.3 FreeBSD's and NetBSD's jemalloc
6.4 OpenBSD's malloc
6.5 Hoard's malloc
6.6 Thread-caching malloc (tcmalloc)
6.7 In-kernel
7 Overriding malloc
8 Allocation size limits
9 Extensions and alternatives
10 See also
11 References
12 External links
Rationale[edit]
The C programming language manages memory statically, automatically, or dynamically. Static-duration variables are allocated in main memory, usually along with the executable code of the program, and persist for the lifetime of the program; automatic-duration variables are allocated on the stack and come and go as functions are called and return. For static-duration and automatic-duration variables, the size of the allocation must be compile-time constant (except for the case of variable-length automatic arrays[5]). If the required size is not known until run-time (for example, if data of arbitrary size is being read from the user or from a disk file), then using fixed-size data objects is inadequate.
The lifetime of allocated memory can also cause concern. Neither static- nor automatic-duration memory is adequate for all situations. Automatic-allocated data cannot persist across multiple function calls, while static data persists for the life of the program whether it is needed or not. In many situations the programmer requires greater flexibility in managing the lifetime of allocated memory.
These limitations are avoided by using dynamic memory allocation in which memory is more explicitly (but more flexibly) managed, typically, by allocating it from the free store (informally called the "heap"), an area of memory structured for this purpose. In C, the library function malloc is used to allocate a block of memory on the heap. The program accesses this block of memory via a pointer that malloc returns. When the memory is no longer needed, the pointer is passed to free which deallocates the memory so that it can be used for other purposes.
Some platforms provide library calls which allow run-time dynamic allocation from the C stack rather than the heap (e.g. alloca()[6]). This memory is automatically freed when the calling function ends.
Overview of functions[edit]
The C dynamic memory allocation functions are defined in stdlib.h header (cstdlib header in C++).[1]
Function
Description
malloc allocates the specified number of bytes
realloc increases or decreases the size of the specified block of memory. Reallocates it if needed
calloc allocates the specified number of bytes and initializes them to zero
free releases the specified block of memory back to the system
Differences between malloc() and calloc()[edit]
malloc() takes a single argument (the amount of memory to allocate in bytes), while calloc() needs two arguments (the number of variables to allocate in memory, and the size in bytes of a single variable).
malloc() does not initialize the memory allocated, while calloc() guarantees that all bytes of the allocated memory block have been initialized to 0.
Usage example[edit]
Creating an array of ten integers with automatic scope is straightforward in C:
int array[10];
However, the size of the array is fixed at compile time. If one wishes to allocate a similar array dynamically, the following code can be used:
int * array = malloc(10 * sizeof(int));
This computes the number of bytes that ten integers occupy in memory, then requests that many bytes from malloc and assigns the result to a pointer named array (due to C syntax, pointers and arrays can be used interchangeably in some situations).
Because malloc might not be able to service the request, it might return a null pointer and it is good programming practice to check for this:
int * array = malloc(10 * sizeof(int)); if (array == NULL) { fprintf(stderr, "malloc failed\n"); return(-1); }
When the program no longer needs the dynamic array, it must eventually call free to return the memory it occupies to the free store:
free(array);
The memory set aside by malloc is not initialized and may contain cruft: the remnants of previously used and discarded data. After allocation with malloc, elements of the array are uninitialized variables. The command calloc will return an allocation that has already been cleared:
int * array = calloc(10, sizeof (int));
With realloc we can resize the amount of memory a pointer points to. For example, if we have a pointer acting as an array of size n {\displaystyle n} and we want to change it to an array of size m {\displaystyle m} , we can use realloc.
int * arr = malloc(2 * sizeof(int)); arr[0] = 1; arr[1] = 2; arr = realloc(arr, 3 * sizeof(int)); arr[2] = 3;
Note that realloc must be assumed to have changed the base address of the block (i.e. if it has failed to extend the size of the original block, and has therefore allocated a new larger block elsewhere and copied the old contents into it). Therefore, any pointers to addresses within the original block are also no longer valid.
Type safety[edit]
malloc returns a void pointer (void *), which indicates that it is a pointer to a region of unknown data type. The use of casting is required in C++ due to the strong type system, whereas this is not the case in C. The lack of a specific pointer type returned from malloc is type-unsafe behaviour according to some programmers: malloc allocates based on byte count but not on type. This is different from the C++ new operator that returns a pointer whose type relies on the operand. (See C Type Safety.)
One may "cast" (see type conversion) this pointer to a specific type:
int * ptr; ptr = malloc(10 * sizeof(int));	/* without a cast */ ptr = (int *)malloc(10 * sizeof(int));	/* with a cast */
There are advantages and disadvantages to performing such a cast.
Advantages to casting[edit]
Including the cast may allow a C program or function to compile as C++.
The cast allows for pre-1989 versions of malloc that originally returned a char *.[7]
Casting can help the developer identify inconsistencies in type sizing should the destination pointer type change, particularly if the pointer is declared far from the malloc() call (although modern compilers and static analysers can warn on such behaviour without requiring the cast[8]).
Disadvantages to casting[edit]
Under the C standard, the cast is redundant.
Adding the cast may mask failure to include the header stdlib.h, in which the function prototype for malloc is found.[7][9] In the absence of a prototype for malloc, the C90 standard requires that the C compiler assume malloc returns an int. If there is no cast, C90 requires a diagnostic when this integer is assigned to the pointer; however, with the cast, this diagnostic would not be produced, hiding a bug. On certain architectures and data models (such as LP64 on 64-bit systems, where long and pointers are 64-bit and int is 32-bit), this error can actually result in undefined behaviour, as the implicitly declared malloc returns a 32-bit value whereas the actually defined function returns a 64-bit value. Depending on calling conventions and memory layout, this may result in stack smashing. This issue is less likely to go unnoticed in modern compilers, as C99 does not permit implicit declarations, so the compiler must produce a diagnostic even if it does assume int return.
If the type of the pointer is changed at its declaration, one may also need to change all lines where malloc is called and cast.
Common errors[edit]
This section does not cite any sources. Please help improve this section by adding citations to reliable sources. Unsourced material may be challenged and removed. (March 2015) (Learn how and when to remove this template message)
The improper use of dynamic memory allocation can frequently be a source of bugs. These can include security bugs or program crashes, most often due to segmentation faults.
Most common errors are as follows:[10]
Not checking for allocation failures
Memory allocation is not guaranteed to succeed, and may instead return a null pointer. Using the returned value, without checking if the allocation is successful, invokes undefined behavior. This usually leads to crash (due to the resulting segmentation fault on the null pointer dereference), but there is no guarantee that a crash will happen so relying on that can also lead to problems.
Memory leaks
Failure to deallocate memory using free leads to buildup of non-reusable memory, which is no longer used by the program. This wastes memory resources and can lead to allocation failures when these resources are exhausted.
Logical errors
All allocations must follow the same pattern: allocation using malloc, usage to store data, deallocation using free. Failures to adhere to this pattern, such as memory usage after a call to free (dangling pointer) or before a call to malloc (wild pointer), calling free twice ("double free"), etc., usually causes a segmentation fault and results in a crash of the program. These errors can be transient and hard to debug – for example, freed memory is usually not immediately reclaimed by the OS, and thus dangling pointers may persist for a while and appear to work.
Implementations[edit]
The implementation of memory management depends greatly upon operating system and architecture. Some operating systems supply an allocator for malloc, while others supply functions to control certain regions of data. The same dynamic memory allocator is often used to implement both malloc and the operator new in C++.[11]
Heap-based[edit]
See also: sbrk
Implementation of the allocator is commonly done using the heap, or data segment. The allocator will usually expand and contract the heap to fulfill allocation requests.
The heap method suffers from a few inherent flaws, stemming entirely from fragmentation. Like any method of memory allocation, the heap will become fragmented; that is, there will be sections of used and unused memory in the allocated space on the heap. A good allocator will attempt to find an unused area of already allocated memory to use before resorting to expanding the heap. The major problem with this method is that the heap has only two significant attributes: base, or the beginning of the heap in virtual memory space; and length, or its size. The heap requires enough system memory to fill its entire length, and its base can never change. Thus, any large areas of unused memory are wasted. The heap can get "stuck" in this position if a small used segment exists at the end of the heap, which could waste any amount of address space. On lazy memory allocation schemes, such as those often found in the Linux operating system, a large heap does not necessarily reserve the equivalent system memory; it will only do so at the first write time (reads of non-mapped memory pages return zero). The granularity of this depends on page size.
dlmalloc[edit]
Doug Lea has developed dlmalloc ("Doug Lea's Malloc") as a general-purpose allocator, starting in 1987. The GNU C library (glibc) uses ptmalloc,[12] an allocator based on dlmalloc.[13]
Memory on the heap is allocated as "chunks", an 8-byte aligned data structure which contains a header, and usable memory. Allocated memory contains an 8 or 16 byte overhead for the size of the chunk and usage flags. Unallocated chunks also store pointers to other free chunks in the usable space area, making the minimum chunk size 24 bytes.[13]
Unallocated memory is grouped into "bins" of similar sizes, implemented by using a double-linked list of chunks (with pointers stored in the unallocated space inside the chunk).[13]
For requests below 256 bytes (a "smallbin" request), a simple two power best fit allocator is used. If there are no free blocks in that bin, a block from the next highest bin is split in two.
For requests of 256 bytes or above but below the mmap threshold, recent versions of dlmalloc use an in-place bitwise trie algorithm. If there is no free space left to satisfy the request, dlmalloc tries to increase the size of the heap, usually via the brk system call.
For requests above the mmap threshold (a "largebin" request), the memory is always allocated using the mmap system call. The threshold is usually 256 KB.[14] The mmap method averts problems with huge buffers trapping a small allocation at the end after their expiration, but always allocates an entire page of memory, which on many architectures is 4096 bytes in size.[15]
FreeBSD's and NetBSD's jemalloc[edit]
Since FreeBSD 7.0 and NetBSD 5.0, the old malloc implementation (phkmalloc) was replaced by jemalloc, written by Jason Evans. The main reason for this was a lack of scalability of phkmalloc in terms of multithreading. In order to avoid lock contention, jemalloc uses separate "arenas" for each CPU. Experiments measuring number of allocations per second in multithreading application have shown that this makes it scale linearly with the number of threads, while for both phkmalloc and dlmalloc performance was inversely proportional to the number of threads.[16]
OpenBSD's malloc[edit]
OpenBSD's implementation of the malloc function makes use of mmap. For requests greater in size than one page, the entire allocation is retrieved using mmap; smaller sizes are assigned from memory pools maintained by malloc within a number of "bucket pages," also allocated with mmap.[17][better source needed] On a call to free, memory is released and unmapped from the process address space using munmap. This system is designed to improve security by taking advantage of the address space layout randomization and gap page features implemented as part of OpenBSD's mmap system call, and to detect use-after-free bugs—as a large memory allocation is completely unmapped after it is freed, further use causes a segmentation fault and termination of the program.
Hoard's malloc[edit]
Main article: Hoard memory allocator
Hoard is an allocator whose goal is scalable memory allocation performance. Like OpenBSD's allocator, Hoard uses mmap exclusively, but manages memory in chunks of 64 kilobytes called superblocks. Hoard's heap is logically divided into a single global heap and a number of per-processor heaps. In addition, there is a thread-local cache that can hold a limited number of superblocks. By allocating only from superblocks on the local per-thread or per-processor heap, and moving mostly-empty superblocks to the global heap so they can be reused by other processors, Hoard keeps fragmentation low while achieving near linear scalability with the number of threads.[18]
Thread-caching malloc (tcmalloc)[edit]
Every thread has local storage for small allocations. For large allocations mmap or sbrk can be used. TCMalloc, a malloc developed by Google,[19] has garbage-collection for local storage of dead threads. The TCMalloc is considered to be more than twice as fast as glibc's ptmalloc for multithreaded programs.[20][21]
In-kernel[edit]
Operating system kernels need to allocate memory just as application programs do. The implementation of malloc within a kernel often differs significantly from the implementations used by C libraries, however. For example, memory buffers might need to conform to special restrictions imposed by DMA, or the memory allocation function might be called from interrupt context.[22] This necessitates a malloc implementation tightly integrated with the virtual memory subsystem of the operating system kernel.
Overriding malloc[edit]
Because malloc and its relatives can have a strong impact on the performance of a program, it is not uncommon to override the functions for a specific application by custom implementations that are optimized for application's allocation patterns. The C standard provides no way of doing this, but operating systems have found various ways to do this by exploiting dynamic linking. One way is to simply link in a different library to override the symbols. Another, employed by Unix System V.3, is to make malloc and free function pointers that an application can reset to custom functions.[23]
Allocation size limits[edit]
The largest possible memory block malloc can allocate depends on the host system, particularly the size of physical memory and the operating system implementation. Theoretically, the largest number should be the maximum value that can be held in a size_t type, which is an implementation-dependent unsigned integer representing the size of an area of memory. In the C99 standard and later, it is available as the SIZE_MAX constant from <stdint.h>. Although not guaranteed by ISO C, it is usually 2CHAR_BIT × sizeof(size_t) − 1.
Extensions and alternatives[edit]
The C library implementations shipping with various operating systems and compilers may come with alternatives and extensions to the standard malloc package. Notable among these is:
alloca, which allocates a requested number of bytes on the call stack. No corresponding deallocation function exists, as typically the memory is deallocated as soon as the calling function returns. alloca was present on Unix systems as early as 32/V (1978), but its use can be problematic in some (e.g., embedded) contexts.[24] While supported by many compilers, it is not part of the ANSI-C standard and therefore may not always be portable. It may also cause minor performance problems: it leads to variable-size stack frames, so that both stack and frame pointers need to be managed (with fixed-size stack frames, one of these is redundant).[25] Larger allocations may also increase the risk of undefined behavior due to a stack overflow.[26] C99 offered variable-length arrays as an alternative stack allocation mechanism - however, this feature was relegated to optional in the later C11 standard.
POSIX defines a function posix_memalign that allocates memory with caller-specified alignment. Its allocations are deallocated with free.[27]
See also[edit]
Buffer overflow
Memory debugger
Memory protection
Page size
Variable-length array
References[edit]
^ Jump up to: a b ISO/IEC 9899:1999 specification (PDF). p. 313, § 7.20.3 "Memory management functions".
Jump up ^ Godse, Atul P.; Godse, Deepali A. (2008). Advanced C Programming. p. 6-28: Technical Publications. p. 400. ISBN 978-81-8431-496-0.
Jump up ^ Summit, Steve. "C Programming Notes - Chapter 11: Memory Allocation". Retrieved 30 October 2011.
Jump up ^ Stroustrup, Bjarne (2008). Programming: Principles and Practice Using C++. 1009, §27.4 Free store: Addison Wesley. p. 1236. ISBN 978-0-321-54372-1.
Jump up ^ "gcc manual". gnu.org. Retrieved 14 December 2008.
Jump up ^ "alloca". Man.freebsd.org. 5 September 2006. Retrieved 18 September 2011.
^ Jump up to: a b "Casting malloc". Cprogramming.com. Retrieved 9 March 2007.
Jump up ^ "clang: lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp Source File". clang.llvm.org. Retrieved 1 April 2018.
Jump up ^ "comp.lang.c FAQ list · Question 7.7b". C-FAQ. Retrieved 9 March 2007.
Jump up ^ Reek, Kenneth (1997-08-04). Pointers on C (1 ed.). Pearson. ISBN 9780673999863.
Jump up ^ Alexandrescu, Andrei (2001). Modern C++ Design: Generic Programming and Design Patterns Applied. Addison-Wesley. p. 78.
Jump up ^ "Wolfram Gloger's malloc homepage". malloc.de. Retrieved 1 April 2018.
^ Jump up to: a b c Kaempf, Michel (2001). "Vudo malloc tricks". Phrack (57): 8. Archived from the original on 22 January 2009. Retrieved 29 April 2009.
Jump up ^ "Malloc Tunable Parameters". GNU. Retrieved 2 May 2009.
Jump up ^ Sanderson, Bruce (12 December 2004). "RAM, Virtual Memory, Pagefile and all that stuff". Microsoft Help and Support.
Jump up ^ Evans, Jason (16 April 2006). "A Scalable Concurrent malloc(3) Implementation for FreeBSD" (PDF). Retrieved 18 March 2012.
Jump up ^ "libc/stdlib/malloc.c". BSD Cross Reference, OpenBSD src/lib/.
Jump up ^ Berger, E. D.; McKinley, K. S.; Blumofe, R. D.; Wilson, P. R. (November 2000). Hoard: A Scalable Memory Allocator for Multithreaded Applications (PDF). ASPLOS-IX. Proceedings of the ninth international conference on Architectural support for programming languages and operating systems. pp. 117–128. CiteSeerX 10.1.1.1.4174  . doi:10.1145/378993.379232. ISBN 1-58113-317-0.
Jump up ^ TCMalloc homepage
Jump up ^ Ghemawat, Sanjay; Menage, Paul; TCMalloc : Thread-Caching Malloc
Jump up ^ Callaghan, Mark (18 January 2009). "High Availability MySQL: Double sysbench throughput with TCMalloc". Mysqlha.blogspot.com. Retrieved 18 September 2011.
Jump up ^ "kmalloc()/kfree() include/linux/slab.h". People.netfilter.org. Retrieved 18 September 2011.
Jump up ^ Shared libraries.
Jump up ^ "Why is the use of alloca() not considered good practice?". stackoverflow.com. Retrieved 2016-01-05.
Jump up ^ Amarasinghe, Saman; Leiserson, Charles (2010). "6.172 Performance Engineering of Software Systems, Lecture 10". MIT OpenCourseWare. Massachusetts Institute of Technology. Retrieved 27 January 2015.
Jump up ^ "alloca(3) - Linux manual page". man7.org. Retrieved 2016-01-05.
Jump up ^ posix_memalign – System Interfaces Reference, The Single UNIX Specification, Issue 7 from The Open Group
External links[edit]
The Wikibook C Programming has a page on the topic of: C Programming/C Reference
Wikiversity has learning resources about C/Memory_Management
Definition of malloc in IEEE Std 1003.1 standard
Lea, Doug; The design of the basis of the glibc allocator
Gloger, Wolfram; The ptmalloc homepage
Berger, Emery; The Hoard homepage
Douglas, Niall; The nedmalloc homepage
Evans, Jason; The jemalloc homepage
Simple Memory Allocation Algorithms on OSDEV Community
Michael, Maged M.; Scalable Lock-Free Dynamic Memory Allocation
Bartlett, Jonathan; Inside memory management - The choices, tradeoffs, and implementations of dynamic allocation
Memory Reduction (GNOME) wiki page with lots of information about fixing malloc
C99 standard draft, including TC1/TC2/TC3
Some useful references about C
ISO/IEC 9899 – Programming languages – C
Understanding glibc malloc
hide
v
t
e
Memory management
Memory management as a function of an operating system
Manual memory management
Static memory allocation
C dynamic memory allocation
new and delete (C++)
Virtual memory
Demand paging
Page table
Paging
Virtual memory compression
Hardware
Memory management unit
Translation lookaside buffer
Garbage collection
Boehm garbage collector
Concurrent mark sweep collector
Finalizer
Garbage
Garbage-first collector
Mark-compact algorithm
Reference counting
Tracing garbage collection
Strong reference
Weak reference
Memory segmentation
Protected mode
Real mode
Virtual 8086 mode
x86 memory segmentation
Memory safety
Buffer overflow
Buffer over-read
Dangling pointer
Stack overflow
Issues
Fragmentation
Memory leak
Unreachable memory
Other
Automatic variable
International Symposium on Memory Management
Region-based memory management
hide
v
t
e
C programming language
ANSI C
C89 and C90
C99
C11
C18
Embedded C
MISRA C
Features
Functions
Header files
Libraries
Operators
String
Syntax
Preprocessor
Data types
Standard library
functions
Char (ctype.h)
File I/O (stdio.h)
Math (math.h)
Dynamic memory (stdlib.h)
String (string.h)
Time (time.h)
Variadic (stdarg.h)
POSIX
Standard
libraries
Bionic
libhybris
dietlibc
EGLIBC
glibc
klibc
Microsoft Run-time Library
musl
Newlib
uClibc
BSD libc
Compilers
Comparison of compilers
ACK
Borland Turbo C
Clang
GCC
ICC
LCC
PCC
SDCC
TCC
Microsoft Visual Studio / Express / C++
Watcom C/C++
IDEs
Comparison of IDEs
Anjuta
Code::Blocks
CodeLite
Eclipse
Geany
Microsoft Visual Studio
NetBeans
Comparison with
other languages
Compatibility of C and C++
Comparison with Embedded C
Comparison with Pascal
Comparison of programming languages
Descendant
languages
C++
C#
D
Objective-C
Alef
Limbo
Go
Vala
Category
Retrieved from "https://en.wikipedia.org/w/index.php?title=C_dynamic_memory_allocation&oldid=853160595"
Categories:
Memory management
Memory management software
C standard library
C++
Hidden categories:
Articles needing additional references from March 2015
All articles needing additional references
All articles lacking reliable references
Articles lacking reliable references from November 2015
Use dmy dates from January 2012
Articles with example C code
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Article
Talk
Variants
Views
Read
Edit
View history
More
Search
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact page
Tools
What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
Cite this page
Print/export
Create a book
Download as PDF
Printable version
Languages
Čeština
Español
فارسی
Français
한국어
Italiano
日本語
Norsk
Português
Русский
Српски / srpski
中文
5 more
Edit links
This page was last edited on 2 August 2018, at 20:40 (UTC).
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
Privacy policy
About Wikipedia
Disclaimers
Contact Wikipedia
Developers
Cookie statement
Mobile view
Enable previews

values: mw-page-base noprint

values: mw-head-base noprint

values: firstHeading firstHeading en

values: siteSub noprint

attrs: class href

values: mw-jump-link #mw-head

values: mw-jump-link #p-search

value: th

value: tr

values: float:right;clear:right;width:22.0em;margin:0 0 1.0em 1.0em;background:#f9f9f9;border:1px solid #aaa;padding:0.2em;border-spacing:0.4em 0;text-align:center;line-height:1.4em;font-size:88%

values:
/wiki/Dynamic_memory_allocation
mw-redirect
Dynamic memory allocation

values: checkbox button toctogglecheckbox toctogglecheckbox display:none

values:
/wiki/C_programming_language
mw-redirect
C programming language

values:
/wiki/Static_memory_allocation
mw-redirect
Static memory allocation

values:
/wiki/Automatic_memory_allocation
mw-redirect
Automatic memory allocation

values: Edit section: Differences between malloc() and calloc()

values: vertical-align: -0.338ex; width:1.395ex; height:1.676ex;

values: vertical-align: -0.338ex; width:2.04ex; height:1.676ex;

values:
/wiki/Void_pointer
mw-redirect
Void pointer

values:
/wiki/New_(C%2B%2B)
mw-redirect
New (C++)

values:
/wiki/Stack_smashing
mw-redirect
Stack smashing

values: Help:Introduction to referencing with Wiki Markup/1

values: plainlinks metadata ambox ambox-content ambox-Unreferenced

values:
/wiki/Wild_pointer
mw-redirect
Wild pointer

values:
/wiki/Heap_memory
mw-redirect
Heap memory

values:
/wiki/Fragmentation_(computer)
mw-redirect
Fragmentation (computer)

values:
/wiki/GNU_C_library
mw-redirect
GNU C library

values:
/wiki/Page_(computing)
mw-redirect
Page (computing)

values: Edit section: FreeBSD's and NetBSD's jemalloc

values:
nofollow
http://jemalloc.net/
external text

values: This claim needs references to better sources. (November 2015)

values: noprint Inline-Template noprint noexcerpt Template-Fact

values: Edit section: Thread-caching malloc (tcmalloc)

values:
nofollow
https://code.google.com/p/gperftools/
external text

values:
/wiki/Kernel_(computer_science)
mw-redirect
Kernel (computer science)

values: Edit section: Extensions and alternatives

values:
/wiki/Variable-length_arrays
mw-redirect
Variable-length arrays

values:
nofollow
external text
http://man.freebsd.org/alloca

values:
nofollow
http://malloc.de/en/
external text

values:
nofollow
external text
http://support.microsoft.com/kb/555223

values: International Conference on Architectural Support for Programming Languages and Operating Systems

values:
nofollow
external text
//doi.org/10.1145/378993.379232

values:
nofollow
//code.google.com/p/gperftools/
external text

values:
/wiki/Single_Unix_Specification
mw-redirect
Single Unix Specification

values: -moz-column-width: 30em; -webkit-column-width: 30em; column-width: 30em; list-style-type: decimal;

values: wikibooks:C Programming/C dynamic memory management

values:
nofollow
external text
http://www.malloc.de/en/index.html

values:
nofollow
http://www.hoard.org/
external text

values:
nofollow
http://www.canonware.com/jemalloc/
external text

values:
nofollow
external text
http://live.gnome.org/MemoryReduction

values:
nofollow
external text
http://paste.tclers.tk/1596

values: International Symposium on Memory Management

values: nowraplinks hlist collapsible expanded navbox-inner mw-collapsible mw-made-collapsible

values:
*ANSI_C
**C89_and_C90
*C99
*C11
*C18
*Embedded_C
*MISRA_C

values: Comparison of integrated development environments

values: Category:Comparison of individual programming languages

values: Category:Articles needing additional references from March 2015

values: Category:All articles needing additional references

values: Category:All articles lacking reliable references

values: Category:Articles lacking reliable references from November 2015

values: Category:Use dmy dates from January 2012

values: Discussion about edits from this IP address [ctrl-alt-n]

values: A list of edits made from this IP address [ctrl-alt-y]

values: You are encouraged to create an account and log in; however, it is not mandatory

values: You're encouraged to log in; however, it's not mandatory. [ctrl-alt-o]

values:
/wiki/C_dynamic_memory_allocation
View the content page [ctrl-alt-c]
c

values: A list of recent changes in the wiki [ctrl-alt-r]

values: portal navigation p-interaction p-interaction-label

values: List of all English Wikipedia pages containing links to this page [ctrl-alt-j]

values: Recent changes in pages linked from this page [ctrl-alt-k]

values:
/wiki/Wikipedia:File_Upload_Wizard
Upload files [ctrl-alt-u]
u

values: A list of all special pages [ctrl-alt-q]

values: Permanent link to this revision of the page

values: Link to connected data repository item [ctrl-alt-g]

values: Printable version of this page [ctrl-alt-p]

values: Dynamická alokace paměti v jazyce C – Czech

values:
interlanguage-link interwiki-cs
display: none;

values:
https://es.wikipedia.org/wiki/Malloc
Malloc – Spanish
es
es
interlanguage-link-target

values: اختصاص حافظه پویا در سی – Persian

values:
interlanguage-link interwiki-fa
display: none;

values:
https://fr.wikipedia.org/wiki/Malloc
Malloc – French
fr
fr
interlanguage-link-target

values: C 동적 메모리 할당 – Korean

values:
https://it.wikipedia.org/wiki/Malloc
Malloc – Italian
it
it
interlanguage-link-target

values:
interlanguage-link interwiki-it
display: none;

values:
https://ja.wikipedia.org/wiki/Malloc
Malloc – Japanese
ja
ja
interlanguage-link-target

values:
https://no.wikipedia.org/wiki/Malloc
Malloc – Norwegian
no
no
interlanguage-link-target

values:
interlanguage-link interwiki-no
display: none;

values:
https://pt.wikipedia.org/wiki/Malloc
Malloc – Portuguese
pt
pt
interlanguage-link-target

values: Динамическое распределение памяти – Russian

values:
https://sr.wikipedia.org/wiki/Malloc
Malloc – Serbian
sr
sr
interlanguage-link-target

values:
interlanguage-link interwiki-sr
display: none;

values: All languages (initial selection from common choices by you and others)

values: /static/images/wikimedia-button-1.5x.png 1.5x, /static/images/wikimedia-button-2x.png 2x

values: /static/images/poweredby_mediawiki_132x47.png 1.5x, /static/images/poweredby_mediawiki_176x62.png 2x

values:
suggestions
display: none; font-size: 13px;

values: mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-C_dynamic_memory_allocation rootpage-C_dynamic_memory_allocation skin-vector action-view


text:
State Bank of Bikaner & Jaipur
From Wikipedia, the free encyclopedia
Jump to: navigation, search
STATE BANK OF BIKANER AND JAIPUR
Type
Public
Traded as
BSE: 501061
NSE: SBBJ
Industry
Banking
Insurance
Capital Markets and allied industries
Fate
merged with State Bank of India on 31st March, 2017
Founded
Jaipur, 1963
Headquarters
Head Office,
Tilak Marg,
Jaipur 302 005 India
Key people
Arundhati Bhattacharya(Chairman), Dibakar Mohanty(Managing Director)
Products
Loans, Savings, Investment vehicles, etc.
Net income
₹ 850.60 Crore (March 2016)[1]
Number of employees
12,831
Parent
State Bank of India
Website
www.sbbjbank.com
State Bank of Bikaner & Jaipur (SBBJ) (in Hindi स्टेट बैंक ऑफ बीकानेर एण्ड जयपुर) was a major Indian bank. It was a subsidiary of State Bank of India, with which it was merged in 2017. As of 2015, SBBJ had 1,360 branches, mostly located in the state of Rajasthan, India. Its branch network out of Rajasthan covers all the major business centers of India. In 1997, the bank entered the capital market with an Initial Public Offering of 13,60,000 shares at a premium of Rs 440 per share. For the year 2015-16 the net profit of the company was 850.60 Crore.[2][3][4][5]
History[edit]
State Bank of Bikaner & Jaipur came into existence on 1963 when two banks, namely, State Bank of Bikaner (established in 1944) and State Bank of Jaipur (established in 1943), were merged. Both these banks were subsidiaries of the State Bank of India under the State Bank of India (Subsidiary Bank) Act, 1959.
On 25 April 1966 SBBJ took over Govind Bank (Private) Ltd., Mathura,[6] established on 8 February 1963.
In 1984 SBBJ sponsored and established Ganganagar Kshetriya Gramin Bank as a Regional Rural Bank. Thereafter, in 1985 SBBJ opened the Bikaner Kshetriya Gramin Bank, the second Regional Rural Bank sponsored by it. The third Regional Rural Bank, sponsored by SBBJ was Marwar Gramin Bank, which covered the districts of Pali, Jalore and Sirohi. On 12 June 2006, SBBJ merged all three regional rural banks that it sponsored under the name MGB Gramin Bank, with headquarters in Jodhpur.
The plans to make SBI one of the top 50 banks in India affected SBBJ very much. In 2016, the plan to merge SBBJ with its five co-subsidiaries was made, and it was ratified by the Government of India on 15 February 2017. It finally merged with SBI on 31 March 2017.
References[edit]
Jump up ^ http://www.moneycontrol.com/india/financials/statebankbikanerjaipur/profit-loss/SBB02?classic=true. Missing or empty |title= (help)
Jump up ^ http://info.shine.com/Company/State-Bank-of-Bikaner-and-Jaipur/373.aspx Company Overview: State Bank of Bikaner and Jaipur
Jump up ^ http://sbbjbank.com/About-Us/history.htm SBBJ History
Jump up ^ "State Bank of Bikaner & Jaipur capitalises on robust earnings". Capital Market Publishers India. 24 April 2009.
Jump up ^ "State Bank of Bikaner and Jaipur 2009 profit up at Rs 403.45 crore". Equity Bulls. 4 April 2009.
Jump up ^ "FINANCIAL INSTITUTIONS: State Bank of Bikaner and Jaipur". Rupee Times. Retrieved 12 December 2013.
External links[edit]
SBBJ official website
[show]
v
t
e
Banking in India
Reserve bank
Reserve Bank of India
Public sector banks
Allahabad Bank
Andhra Bank
Bank of Baroda
Bank of India
Bank of Maharashtra
Canara Bank
Central Bank of India
Corporation Bank
Dena Bank
IDBI Bank
Indian Bank
Indian Overseas Bank
Oriental Bank of Commerce
Post Bank of India
Punjab & Sind Bank
Punjab National Bank
State Bank of India
Syndicate Bank
UCO Bank
Union Bank of India
United Bank of India
Vijaya Bank
Private sector banks
Axis Bank
Bandhan Bank
Catholic Syrian Bank
City Union Bank
DCB Bank
Dhanlaxmi Bank
Federal Bank
HDFC Bank
ICICI Bank
IDFC Bank
IndusInd Bank
Jammu & Kashmir Bank
Karnataka Bank
Karur Vysya Bank
Kotak Mahindra Bank
Lakshmi Vilas Bank
Nainital Bank
RBL Bank (Ratnakar Bank)
South Indian Bank
Tamilnad Mercantile Bank Limited
Yes Bank
Cooperative banks
Buldhana Urban
Cosmos Bank
Repco Bank
Saraswat Bank
Shamrao Vithal Co-operative Bank
TNSC Bank
Rajkot Nagrik Sahakari Bank
Foreign banks
ABN AMRO
Abu Dhabi Commercial Bank
Antwerp Diamond Bank
Australia and New Zealand Banking Group
Bank Maybank Indonesia
Bank of America
Bank of Bahrain and Kuwait
Bank of Ceylon
The Bank of Tokyo-Mitsubishi UFJ
Barclays
Citibank India
Credit Suisse
DBS Bank
Deutsche Bank
HSBC
Rabobank
Royal Bank of Scotland
Scotiabank
Standard Chartered
Regional Rural Banks
Andhra Pradesh Grameena Vikas Bank
Andhra Pragathi Grameena Bank
Assam Gramin Vikash Bank
Bangiya Gramin Vikash Bank
Gramin Bank of Aryavart
Kerala Gramin Bank
North Malabar Gramin Bank
Pallavan Grama Bank
Pandyan Grama Bank
Paschim Banga Gramin Bank
Sarva UP Gramin Bank
South Malabar Gramin Bank
Uttar Bihar Gramin Bank
Vananchal Gramin Bank
List of regional rural banks in Uttar Pradesh
Interbank networks
Cirrus
NFS
PLUS
ATM networks
BANCS
Cashnet
CashTree
India 1 ATM (White Label ATM)
Indicash (White Label ATM)
MITR
Electronic funds transfers
IMPS
NEFT
RTGS
UPI (VPA)
AEPS
Cards
MasterCard
Debit MasterCard
Maestro
RuPay
Visa
Visa Debit
Visa Electron
Visa payWave
Defunct banks
Alliance Bank of Simla
Arbuthnot & Co
Bank of Bombay
Bank of Calcutta
Bank of Chettinad
Bank of Cochin
Bank of Hindostan
Bank of Madras
Bank of Madura
Bank of Rajasthan
Bank of Thanjavur
Bareilley Corporation Bank
Bengal Central Bank
Bharat Overseas Bank
Bharatiya Mahila Bank
Centurion Bank of Punjab
Chartered Bank of India, Australia and China
Commercial Bank of India
Dass Bank
Exchange Bank of India & Africa
Global Trust Bank
Grindlays Bank
Hindustan Commercial Bank
Imperial Bank of India
ING Vysya Bank
Lakshmi Commercial Bank
Lord Krishna Bank
Madhavpura Mercantile Cooperative Bank
Mercantile Bank of India, London and China
Miraj State Bank
Nath Bank
Nedungadi Bank
New Bank of India
Oriental Bank Corporation
Oudh Commercial Bank
Palai Central Bank
Pandyan Bank
Sikkim Bank
State Bank of Bikaner & Jaipur
State Bank of Hyderabad
State Bank of Indore
State Bank of Mysore
State Bank of Patiala
State Bank of Saurashtra
State Bank of Travancore
Times Bank
United Industrial Bank
United Western Bank
Related topics
ATM usage fees in India
Banks Board Bureau
Banking Codes and Standards Board of India
Bharat Bill Payment System
De-Materialisation (DEMAT)
Foreign Exchange (FOREX)
Indian Financial System Code (IFSC)
List of banks in India
National Payments Corporation of India
Prepaid Payment Instruments in India
Structured Financial Messaging System (SFMS)
Retrieved from "https://en.wikipedia.org/w/index.php?title=State_Bank_of_Bikaner_%26_Jaipur&oldid=799141760"
Categories:
Banks of India
Government-owned banks of India
Banks established in 1963
Companies based in Rajasthan
State Bank of India
Government-owned companies of India
Economy of Jaipur
Defunct banks of India
Hidden categories:
Pages with citations lacking titles
Pages with citations having bare URLs
Use Indian English from October 2015
All Wikipedia articles written in Indian English
Use dmy dates from October 2015
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Article
Talk
Variants
Views
Read
Edit
View history
More
Search
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact page
Tools
What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
Cite this page
Print/export
Create a book
Download as PDF
Printable version
Languages
हिन्दी
Bahasa Indonesia
ಕನ್ನಡ
नेपाली
தமிழ்
తెలుగు
Edit links
This page was last edited on 5 September 2017, at 22:01.
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
Privacy policy
About Wikipedia
Disclaimers
Contact Wikipedia
Developers
Cookie statement
Mobile view
Enable previews

key: html

type: local

value: div

attrs: id class

values: mw-page-base noprint

values: mw-head-base noprint

value: a

attrs: id class lang

values: firstHeading firstHeading en

values: siteSub noprint

values: jump-to-nav mw-jump

value: ul

value: caption

value: img

attrs: alt src width height srcset data-file-width data-file-height

attrs: href class

value: td

attrs: colspan class style

values: 2 logo text-align:center

attrs: href title

attrs: scope style

attrs: class style

values:
/wiki/Capital_Markets
mw-redirect
Capital Markets

attrs: alt src title width height srcset data-file-width data-file-height

values:
nofollow
http://www.sbbjbank.com/
external text

values:
/wiki/Initial_Public_Offering
mw-redirect
Initial Public Offering

values:
reflist mw-references-wrap
list-style-type: decimal;

attrs: alt src width height class srcset data-file-width data-file-height

values:
/wiki/Reserve_bank
mw-redirect
Reserve bank

values:
/wiki/Post_Bank_of_India
mw-redirect
Post Bank of India

values: Buldana Urban Cooperative Credit Society

values:
/wiki/Rajkot_Nagrik_Sahakari_Bank
mw-redirect
Rajkot Nagrik Sahakari Bank

values: Virtual Payment Adress (page does not exist)

values:
/wiki/Visa_payWave
mw-redirect
Visa payWave

values: nowraplinks collapsible collapsed navbox-inner

values: Category:Government-owned banks of India

values: Category:Government-owned companies of India

values: Category:Pages with citations lacking titles

values: Category:Pages with citations having bare URLs

values: Category:Use Indian English from October 2015

values: Category:All Wikipedia articles written in Indian English

values: Category:Use dmy dates from October 2015

values: Discussion about edits from this IP address [ctrl-alt-n]

values: A list of edits made from this IP address [ctrl-alt-y]

values: You are encouraged to create an account and log in; however, it is not mandatory

values: You're encouraged to log in; however, it's not mandatory. [ctrl-alt-o]

values:
/wiki/State_Bank_of_Bikaner_%26_Jaipur
View the content page [ctrl-alt-c]
c

values: Discussion about the content page [ctrl-alt-t]

values: p-namespaces navigation vectorTabs p-namespaces-label

values:
p-variants
navigation
vectorMenu emptyPortlet
p-variants-label

values: Past revisions of this page [ctrl-alt-h]

values: p-views navigation vectorTabs p-views-label

values:
p-cactions
navigation
vectorMenu emptyPortlet
p-cactions-label

values:
mw-wiki-logo
/wiki/Main_Page
Visit the main page

values:
/wiki/Main_Page
Visit the main page [ctrl-alt-z]
z

values: Featured content – the best of Wikipedia

values: Find background information on current events

values:
/wiki/Special:Random
Load a random article [ctrl-alt-x]
x

values: portal navigation p-navigation p-navigation-label

values: Guidance on how to use and edit Wikipedia

values: About the project, what you can do, where to find things

values: A list of recent changes in the wiki [ctrl-alt-r]

values: portal navigation p-interaction p-interaction-label

values: List of all English Wikipedia pages containing links to this page [ctrl-alt-j]

values: Recent changes in pages linked from this page [ctrl-alt-k]

values:
/wiki/Wikipedia:File_Upload_Wizard
Upload files [ctrl-alt-u]
u

values: A list of all special pages [ctrl-alt-q]

values: Permanent link to this revision of the page

values: Link to connected data repository item [ctrl-alt-g]

values: Printable version of this page [ctrl-alt-p]

values:
uls-settings-trigger
Language settings
0
button
true

values: स्टेट बैंक ऑफ बीकानेर एण्ड जयपुर – Hindi

values: State Bank of Bikaner & Jaipur – Indonesian

values: ಸ್ಟೇಟ್ ಬ್ಯಾಂಕ್ ಆಫ್ ಬಿಕಾನೇರ್ ಆಂಡ್ ಜೈಪುರ್ – Kannada

values: स्टेट बैंक अफ बिकानेर एण्ड जयपुर – Nepali

values: பிகானீர் மற்றும் ஜெய்ப்பூர் ஸ்டேட் வங்கி – Tamil

values: స్టేట్ బ్యాంక్ ఆఫ్ బికనూర్ & జైపూర్ – Telugu

values: mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-State_Bank_of_Bikaner_Jaipur rootpage-State_Bank_of_Bikaner_Jaipur vector-experimental-print-styles vector-nav-directionality skin-vector action-view


text:
Reading (legislature)
From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
hideThis article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (October 2013) (Learn how and when to remove this template message)
The examples and perspective in this article may not represent a worldwide view of the subject. You may improve this article, discuss the issue on the talk page, or create a new article, as appropriate. (December 2010) (Learn how and when to remove this template message)
(Learn how and when to remove this template message)
A reading of a bill is a debate on the bill held before the general body of a legislature, as opposed to before a committee or an other group. In the Westminster system, there are usually several readings of a bill among the stages it passes through before becoming law as an Act of Parliament. Some of these readings are usually formalities rather than substantive debates.
Contents
[hide]
1 First reading
2 Second reading
3 Third reading
4 See also
5 References
5.1 Bibliography
First reading[edit]
A first reading is when a bill is introduced to a legislature. Typically, in the United States, the title of the bill is read and immediately assigned to a committee. The bill is then considered by committee between the first and second readings. In the United States Senate and most British-influenced legislatures, the committee consideration occurs between second and third readings. In Israel, the committee consideration occurs between first and second readings and (for private member bills) between preliminary and first readings.
In the Oireachtas of Ireland, the "First Stage" of a bill is by either of two methods:[1]
introduction by a private member moving a motion "that leave be given to introduce" the bill — the bill goes to second stage if the motion is carried
presentation on behalf of either the government (unlimited numbers) or a parliamentary group (one at a time per group in the Dáil, three in the Seanad) — the bill automatically goes to second stage
In New Zealand, once a bill passes first reading it is normally referred to a Select Committee. However, a Government can have a bill skip the select committee stage by a simple majority vote in Parliament.
A bill can be defeated on first reading if a member introduces it and no one seconds it.
Second reading[edit]
"Second reading" redirects here. For second reading at a mass, see Mass (liturgy) § Liturgy of the Word.
A second reading is the stage of the legislative process where a draft of a bill is read a second time. In most Westminster systems, a vote is taken on the general outlines of the bill before being sent to committee.
In the Oireachtas of Ireland, it is referred to as "Second Stage", though the subheading "second reading" is used Dáil standing orders, and the motion at second stage is still "that the Bill is to be read a second time". A bill introduced in one house enters the other house at Second Stage, except that the Seanad second stage is waived for Dáil consolidation bills. Once the bill passes second stage it is referred to a Select Committee of that house or taken in Committee Stage by the whole house.[2]
In the United States Senate, a bill is either referred to committee or placed on the Calendar of Business after second reading. No vote is held on whether to read the bill a second time. In U.S. legislatures where consideration in committee precedes second reading, the procedure varies as to how a bill reaches second reading. In Illinois, for example, legislation is automatically read a second time, after which amendments are in order.
In New Zealand, once a bill passes a Second Reading it is then considered clause by clause by the whole Parliament. If a majority of Parliament agree, the bill can be considered part by part, saving considerable time. Because most bills must have majority support to pass a second reading, it is now very rare for a bill to be considered clause by clause.
Third reading[edit]
A third reading is the stage of a legislative process in which a bill is read with all amendments and given final approval by a legislative body. In legislatures whose procedures are based on those of the Westminster system, the third reading occurs after the bill has been amended by committee and considered for amendment at report stage.
In bicameral legislatures, if the bill passes the third reading, it is then sent to the other chamber of parliament to start the process again at first reading in that chamber. Once the bill has passed third reading in both chambers, it is sent on for promulgation, such as Royal Assent in the Westminster system or signing by the president or governor in the U.S. model. In a unicameral legislature, after passing third reading in the sole chamber, the bill goes on directly for promulgation.
In the United States Senate, after the third reading has been ordered, a bill may be amended with a two-thirds majority vote for adoption.[3] There is still a vote on final passage.
In the Oireachtas of Ireland, the equivalent of the third reading is referred to as the "Fifth Stage" or "Final Stage". The motion is "That the Bill do now pass", except that the Seanad motion for a money bill is "That the Bill be returned to the Dáil". When a bill passes one house, it is sent to the other house and enters at Second Stage. After both houses have passed the bill, it is sent to the President of Ireland to be signed into law.[4]
See also[edit]
Bill (law)
Acts of Parliament in the United Kingdom#Stages of a bill
Parliamentary procedure
Separation of powers
References[edit]
Jump up ^ Oireachtas, A Brief Guide to the Legislative Process; Dáil Standing Orders 147; Seanad Standing Orders 144–148
Jump up ^ Oireachtas, A Brief Guide to the Legislative Process; Dáil Standing Orders 148; Seanad Standing Orders 149, 180
Jump up ^ Representatives, Texas House of. "Texas House of Representatives". www.house.state.tx.us. Retrieved 21 March 2018.
Jump up ^ Oireachtas, A Brief Guide to the Legislative Process; Dáil Standing Orders 161; Seanad Standing Orders 163
Bibliography[edit]
Australian Senate, 'Consideration of legislation', Brief Guides to Senate Procedure, No. 9, Department of the Senate, Canberra.
Oireachtas. "A Brief Guide to the Legislative Process". Retrieved 24 Nov 2017.
Dáil Éireann (9 May 2017). "Consolidated Standing Orders of Dáil Éireann 2017" (PDF) (in English and Irish). Retrieved 24 Nov 2017. CS1 maint: Unrecognized language (link)
Seanad Éireann. Standing Orders relative to Public Business 2017 (PDF) (in English and Irish). ISBN 9781406429664. Retrieved 24 Nov 2017. CS1 maint: Unrecognized language (link)
hide
v
t
e
Parliament of Australia
Components
Queen (represented by the Governor-General)
Senate
House of Representatives
Parliamentary
officers
Senate
President of the Senate
Clerk
Leader of the Government in the Senate
Manager of Government Business
Leader of the Opposition in the Senate
Manager of Opposition Business
Whips (list)
House of
Representatives
Speaker of the Australian House of Representatives
Clerk
Prime Minister
Leader of the House
Leader of the Opposition
Manager of Opposition Business
Whips (list)
Members
Served in both houses
Represented multiple states
30+ years
Father of the Parliament
Senate
Current (previous)
Appointees
Women
Father of the Senate
House of
Representatives
Current (previous)
Women
Father of the House
Parliaments
Chronology of Australian federal parliaments
45th Parliament of Australia
Procedure
Speech from the throne
Joint meetings
Question time
Matter of public importance
Readings of bills
Queen's Consent
Royal assent
List of Acts of the Parliament of Australia
Committees: Senate | House of Reps
Elections
Last
Next
List
Double dissolution
Senate: Single transferable vote
House of Representatives: Instant-runoff voting
Two-party-preferred vote
Divisions
By-elections
Caretaker government
Court of Disputed Returns
Locations
Parliament House, Melbourne
Old Parliament House
Parliament House, Canberra
hide
v
t
e
Parliament of New Zealand
Components
Queen (represented by the Governor-General)
Legislative Council (defunct)
House of Representatives

Parliamentary
officers
Legislative Council
Speaker of the Legislative Council (defunct)
Chairman of Committees (defunct)
House of
Representatives
Speaker of the House of Representatives
Chairman of Committees (defunct)
Clerk
Prime Minister
Leader of the House
Ministers of Government
Leader of the Opposition
Shadow Ministry
Whips
Members
Legislative Council
Abolishment
Previous members of the Legislative Council
House of
Representatives
Current (previous)
30+ years
Father or Mother of the House
Baby of the House
Procedure
Speech from the throne
Question time
Matter of public importance
Readings of bills
Queen's Consent
Royal assent
Committees
Elections
Next
List
Legislative Council: None (Previously appointed by Governor General)
House of Representatives: Mixed-member proportional (current)
First-past-the-post (previously)
Electorates
By-elections
Supplementary elections (defunct)
Caretaker government
Locations
Parliament House, Russell (Destroyed)
Parliament House, Auckland (Destroyed)
Parliament House, Wellington (current)
The Beehive (current executive wing)
Parliamentary Library (current)
Bowen House (current)
Retrieved from "https://en.wikipedia.org/w/index.php?title=Reading_(legislature)&oldid=836012206"
Categories:
Statutory law
Hidden categories:
Articles needing additional references from October 2013
All articles needing additional references
Articles with limited geographic scope from December 2010
Articles with multiple maintenance issues
CS1 maint: Unrecognized language
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Article
Talk
Variants
Views
Read
Edit
View history
More
Search
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact page
Tools
What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
Cite this page
Print/export
Create a book
Download as PDF
Printable version
Languages
Bân-lâm-gú
Dansk
한국어
Bahasa Melayu
日本語
Русский
中文
Edit links
This page was last edited on 12 April 2018, at 04:13.
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
Privacy policy
About Wikipedia
Disclaimers
Contact Wikipedia
Developers
Cookie statement
Mobile view
Enable previews

values: mw-page-base noprint

values: mw-head-base noprint

values: firstHeading firstHeading en

values: siteSub noprint

values: mw-jump-link #mw-head

values: mw-jump-link #p-search

value: span

attrs: class role tabindex

value: b

value: i

value: small

values: Help:Introduction to referencing with Wiki Markup/1

values: plainlinks metadata ambox ambox-content ambox-Refimprove

values: Wikipedia:WikiProject Countering systemic bias

values: plainlinks metadata ambox ambox-content ambox-globalize

values:
mw-collapsible mw-made-collapsible
width:95%; margin: 0.2em 0;

values: plainlinks metadata ambox ambox-content ambox-multiple_issues compact-ambox

values:
/wiki/Bill_(proposed_law)
mw-redirect
Bill (proposed law)

values:
/wiki/Private_member_bill
mw-redirect
Private member bill

values:
/wiki/Select_Committee
mw-redirect
Select Committee

values: Legislative process (page does not exist)

values:
/wiki/Royal_Assent
mw-redirect
Royal Assent

values: Acts of Parliament in the United Kingdom

values:
reflist mw-references-wrap
list-style-type: decimal;

values: Category:CS1 maint: Unrecognized language

values:
navbox-image
7
width:1px;padding:0px 0px 0px 2px

values: Leader of the Government in the Senate (Australia)

values: Manager of Government Business in the Senate (Australia)

values: Leader of the Opposition in the Senate (Australia)

values: Manager of Opposition Business in the Senate (Australia)

values: Clerk of the Australian House of Representatives

values: List of Australian Leaders of the Opposition

values: Manager of Opposition Business in the House (Australia)

values: List of whips in the Australian House of Representatives

values: List of people who have served in both Houses of the Australian Parliament

values: Members of the Australian Parliament who have represented more than one state or territory

values: Members of the Australian Parliament who have served for at least 30 years

values: Members of the Australian Senate, 2016–2019

values: Members of the Australian House of Representatives, 2016–2019

values: Women in the Australian House of Representatives

values: Father of the Australian House of Representatives

values: Joint meetings of the Australian Parliament

values: List of Acts of the Parliament of Australia

values: Australian House of Representatives committees

values: Divisions of the Australian House of Representatives

values: nowraplinks collapsible autocollapse navbox-inner mw-collapsible mw-made-collapsible

values:
navbox-image
6
width:1px;padding:0px 0px 0px 2px

values: Speaker of the New Zealand Legislative Council

values: Chairman of Committees (New Zealand Legislative Council)

values: Speaker of the New Zealand House of Representatives

values: Chairman of Committees (New Zealand House of Representatives)

values: Office of the Clerk of the House of Representatives

values: List of members of the New Zealand Legislative Council

values: Members of the New Zealand Parliament who have served for at least 30 years

values: New Zealand House of Representatives committees

values:
/wiki/The_Beehive
mw-redirect
The Beehive

values: Category:Articles needing additional references from October 2013

values: Category:All articles needing additional references

values: Category:Articles with limited geographic scope from December 2010

values: Category:Articles with multiple maintenance issues

values: Discussion about edits from this IP address [ctrl-alt-n]

values: A list of edits made from this IP address [ctrl-alt-y]

values: You are encouraged to create an account and log in; however, it is not mandatory

values: You're encouraged to log in; however, it's not mandatory. [ctrl-alt-o]

values:
/wiki/Reading_(legislature)
View the content page [ctrl-alt-c]
c

values: Discussion about the content page [ctrl-alt-t]

values: p-namespaces navigation vectorTabs p-namespaces-label

values:
p-variants
navigation
vectorMenu emptyPortlet
p-variants-label

values: Past revisions of this page [ctrl-alt-h]

values: p-views navigation vectorTabs p-views-label

values:
p-cactions
navigation
vectorMenu emptyPortlet
p-cactions-label

values:
mw-wiki-logo
/wiki/Main_Page
Visit the main page

values:
/wiki/Main_Page
Visit the main page [ctrl-alt-z]
z

values: Featured content – the best of Wikipedia

values: Find background information on current events

values:
/wiki/Special:Random
Load a random article [ctrl-alt-x]
x

values: portal navigation p-navigation p-navigation-label

values: Guidance on how to use and edit Wikipedia

values: About the project, what you can do, where to find things

values: A list of recent changes in the wiki [ctrl-alt-r]

values: Чтение законопроекта – Russian

values: /static/images/wikimedia-button-1.5x.png 1.5x, /static/images/wikimedia-button-2x.png 2x

values: /static/images/poweredby_mediawiki_132x47.png 1.5x, /static/images/poweredby_mediawiki_176x62.png 2x

values:
suggestions
display: none; font-size: 13px;

values: mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Reading_legislature rootpage-Reading_legislature skin-vector action-view